使用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 相关文章推荐
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
May 13 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
Jan 26 Javascript
浅谈JavaScript事件的属性列表
Mar 01 Javascript
JavaScript实现算术平方根算法-代码超简单
Sep 11 Javascript
js弹出窗口返回值的简单实例
May 28 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
解决Vue编译时写在style中的路径问题
Sep 21 Javascript
详解create-react-app 自定义 eslint 配置
Jun 07 Javascript
element-ui多文件上传的实现示例
Apr 10 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
小程序开发之模态框组件封装
Apr 23 Javascript
JS实现小米轮播图
Sep 21 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解析html的实现代码
2011/08/08 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
PHP7 标准库修改
2021/03/09 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
javascript 网页跳转的方法
2008/12/24 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
Python求解平方根的方法
2015/03/11 Python
Python用threading实现多线程详解
2017/02/03 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
2014年度安全工作总结
2014/12/04 职场文书
如何写新闻稿
2015/07/18 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
Python基础知识学习之类的继承
2021/05/31 Python