使用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中的对象 推荐
Jan 09 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
jQuery结合ajax实现动态加载文本内容
May 19 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 Javascript
如何利用javascript接收json信息并进行处理
Aug 06 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执行速度全攻略
2006/10/09 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
javascript cookies操作集合
2010/04/12 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
Python解惑之整数比较详解
2017/04/24 Python
Numpy掩码式数组详解
2018/04/17 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
python打开使用的方法
2019/09/30 Python
python的slice notation的特殊用法详解
2019/12/27 Python
深入了解NumPy 高级索引
2020/07/24 Python
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
心灵点滴观后感
2015/06/02 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
浅谈Python协程asyncio
2021/06/20 Python