使用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 相关文章推荐
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
js脚本获取webform服务器控件的方法
May 16 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
Dec 18 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
微信小程序中使用ECharts 异步加载数据的方法
Jun 27 Javascript
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
手写实现JS中的new
Nov 07 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
一个目录遍历函数
2006/10/09 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
Python中datetime常用时间处理方法
2015/06/15 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
Python变量访问权限控制详解
2019/06/29 Python
django最快程序开发流程详解
2019/07/19 Python
使用pip安装python库的多种方式
2019/07/31 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
歌颂祖国演讲稿
2014/05/04 职场文书
好学生评语大全
2014/05/05 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技