使用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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
js压缩工具 yuicompressor 使用教程
Mar 31 Javascript
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
利用Angularjs和Bootstrap前端开发案例实战
Aug 27 Javascript
vue.js入门教程之基础语法小结
Sep 01 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
Jan 22 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
Aug 16 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
微信小程序制作表格的方法
Feb 14 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
Mar 09 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 七大优势分析
2009/06/23 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
python中np是做什么的
2020/07/21 Python
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
商务专员岗位职责
2013/11/23 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
病人慰问信范文
2015/02/15 职场文书
优秀团员个人总结
2015/02/26 职场文书
食品质检员岗位职责
2015/04/08 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
同意转租证明
2015/06/24 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript
MySQL创建表操作命令分享
2022/03/25 MySQL
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python