使用Jquery来实现可以输入值的下拉选单 雏型


Posted in Javascript onDecember 06, 2011

上网 找了一下,有一堆现成的控件,可是 现成的 我要去了解,来结合我现在 系统来应用,要花不少时间,这个时间 跟我自己 搞一个成本 应该差不多
那我还不如 自己 搞一个,比较能了解 怎麽运作,後面就更容易加以运用了。
我的目标是,要把 这个 作成一个控件来使用,并要降低外部程式使用的耦合性,也就是 外部程式 使用上所需的必要条件要尽量减少,免得一忘记加什麽设定,程式 就挂了。
如有可能 甚至希望,只会需要引用一个 Jquery 其他 JavaSciprt 都由程式 来产生。
最後是希望能结合 之前讲得动态控件 来使用,今天 我就先研究一下,用出了下面这个 html 做的雏型,来先行测试一下可行性,确认无误在开始动工改成 ASP.NET 的控件 。
这程式 有几个 重要问题,需要注意的:
下拉选单的触发方式、下拉选单的内容如何绘出,选单事件触发的抓取、抓取到选择事件後值要存在哪里
上述问题解决後,後面 都要用 ASP.NET 的方式来重新撰写,所以在设计雏型时,需注意其能否应用在 ASP.NET 上
构思如下:
这我的打算就是设计一个 button 藉由其 OnClick 事件来触发,到时会由 JQuery 抓取 ASP.NET 动态产生的选单阵列,来动态产生选单,
产生的选单,要能设定三各事件 mouseover mouseout click,前两各 是为了美观,这样 user 才知道 有在动作,click 事件触发後,
将选取到的值储存到 asp.net 的 server 控件 TextBox 中,如此 在 PostBack 就能把值 传回 server 端 来处理。

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js" ></script> 
<title>使用 Jquery 来实现可以输入值的下拉选单(一)</title> 
<script type="text/javascript"> 
$(document).ready(function () { 
//动画速度 
var speed = 500; 
//选单的相关处理事件 
$("#divPop div").live("mouseover mouseout click", function (event) { 
if (event.type == "mouseover") { 
//$(this).addClass(‘highlight'); 
$(this)[0].style.backgroundColor = '#E6F5FA'; 
} 
if (event.type == "mouseout") { 
//$(this).removeClass("highlight"); 
$(this)[0].style.backgroundColor = '#DDFFDD'; 
} 
if (event.type == "click") { 
var inID = $("#btnDDL").get(0).getAttribute("inputid"); 
//alert($(this).html()); 
$("#" + inID).val($(this).html()); 
} 
}); 
//动态产生下拉选单的选项,後面 要从 array 中读取产生选单 
$("#divPop").append("<div>test1</div>"); 
$("#divPop").append("<div>test2</div>"); 
//绑定事件处理 
$("#btnDDL").click(function (event) { 
//取消事件冒泡 
event.stopPropagation(); 
//设置弹出层位置 
var offset = $(event.target).offset(); 
//alert($(event.target).width()); 
var inID = $(this).get(0).getAttribute("inputid"); 
//依? input 跟 button ??度?碓O定 下拉??蔚??度 
$("#divPop")[0].style.width = ($("#" + inID).width() + $(this).width() + 10) + "px"; 
//单击空白区域隐藏弹出层 
$(document).click(function (event) { $("#divPop").hide(speed) }); 
//设定下拉选单显示的位置 
$("#divPop").css({ top: offset.top + $(event.target).height() + 10 + "px", left: offset.right }); 
//切换弹出层的显示状态 
$("#divPop").toggle(speed); 
}); 
}); 
</script> 
</head> 
<body> 
<div> 
<br /><br /><br /> 
<input name="txtKey" type="text" maxlength="30" size="30" id="txtKey" style="Padding:2px;" /><button id="btnDDL" inputid="txtKey" >?</button> 
</div> 
<!-- 弹出层 --> 
<div id="divPop" style="background-color: #DDFFDD; border: solid 1px #000000; position: absolute; display:none; 
width: 300px; height: 100px;"> 
</div> 
</body> 
</html>

这里面 还有各 想解决的问题,就是要让 divPop 也能动态产生..
Javascript 相关文章推荐
js数组的操作详解
Mar 27 Javascript
引用外部脚本时script标签关闭的写法
Jan 20 Javascript
纯JS实现根据CSS的class选择DOM
Mar 22 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
javascript数组输出的两种方式
Jan 13 Javascript
浅谈javascript中的闭包
May 13 Javascript
js中变量的连续赋值(实例讲解)
Jul 08 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
旺旺在线客服代码 旺旺客服代码生成器
Jan 09 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 Javascript
js Function类型
Dec 04 #Javascript
Javascript base64编码实现代码
Dec 02 #Javascript
JS获取页面窗口大小的代码解读
Dec 01 #Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 #Javascript
jQuery 中使用JSON的实现代码
Dec 01 #Javascript
jquery中dom操作和事件的实例学习 下拉框应用
Dec 01 #Javascript
JS代码放在head和body中的区别分析
Dec 01 #Javascript
You might like
php5.2时间相差8小时
2007/01/15 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
php如何获取Http请求
2020/04/30 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
django settings.py 配置文件及介绍
2019/07/15 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
python opencv进行图像拼接
2020/03/27 Python
怎么样写好简历中的自我评价
2013/10/25 职场文书
小学生读书感言
2014/02/12 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
幸福家庭标语
2014/06/27 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
竞选学委演讲稿
2014/09/13 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
七一表彰大会简报
2015/07/20 职场文书
初一军训感言
2015/08/01 职场文书
六年级语文教学反思
2016/03/03 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
JavaScript前端面试组合函数
2022/06/21 Javascript