使用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 硬盘序列号+其它硬件信息
Dec 23 Javascript
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
通过js简单实现将一个文本内容转译成加密文本
Oct 22 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
javascript函数自动执行常用方法汇总
Mar 28 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 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
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
从零学Python之入门(二)基本数据类型
2014/05/25 Python
python一键升级所有pip package的方法
2017/01/16 Python
Tornado 多进程实现分析详解
2018/01/12 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
交通法规咨询中心工作职责
2013/11/27 职场文书
房地产项目建议书
2014/03/12 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
人事代理委托书
2014/09/27 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android