使用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 相关文章推荐
基于javascript实现动态时钟效果
Aug 18 Javascript
JavaScript作用域示例详解
Jul 07 Javascript
原生js代码实现图片放大境效果
Oct 30 Javascript
H5移动端图片压缩上传开发流程
Nov 09 Javascript
js实现表格筛选功能
Jan 18 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
Nov 08 Javascript
150行代码带你实现微信小程序中的数据侦听
May 17 Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 Javascript
JS实现排行榜文字向上滚动轮播效果
Nov 26 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
使用GD库生成带阴影文字的图片
2015/03/27 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
javascript实现数独解法
2015/03/14 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python实现队列的方法
2015/05/26 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
Django models.py应用实现过程详解
2019/07/29 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
python 实现的车牌识别项目
2021/01/25 Python
大学生活动策划方案
2014/02/10 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
优秀求职信
2014/05/29 职场文书
保密工作目标责任书
2014/07/28 职场文书
自我管理的活动方案
2014/08/25 职场文书
中标通知书
2015/04/17 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang