使用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 相关文章推荐
关于scrollLeft,scrollTop的浏览器兼容性测试
Mar 19 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
Jun 12 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
centos 上快速搭建ghost博客方法分享
May 23 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
May 10 Javascript
通过vue手动封装on、emit、off的代码详解
May 29 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 Javascript
详解JavaScript数据类型和判断方法
Sep 04 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
基于MySQL分区性能的详细介绍
2013/05/02 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
ES6学习教程之对象字面量详解
2017/10/09 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
tensorflow 获取变量&amp;打印权值的实例讲解
2018/06/14 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
python银行系统实现源码
2019/10/25 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
车间主管岗位职责
2013/11/14 职场文书
市场部专员岗位职责
2013/11/30 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
企业年检委托书范本
2014/10/14 职场文书
万能检讨书2000字
2014/10/17 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis