使用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 相关文章推荐
js实现运行代码需要刷新的解决方法
Aug 18 Javascript
JavaScript中的私有/静态属性介绍
Jul 26 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
May 10 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
微信小程序开发探究
Dec 27 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
layui 弹出层值回传解决方式
Nov 14 Javascript
微信小程序实现购物车功能
Nov 18 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统计当前在线用户数实例讲解
2015/10/21 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
javaScript之split与join的区别(详解)
2017/11/08 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
python实现类的静态变量用法实例
2015/05/08 Python
Python sys.argv用法实例
2015/05/28 Python
Python优先队列实现方法示例
2017/09/21 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
单位未婚证明范本
2014/01/18 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
python执行js代码的方法
2021/05/13 Python
Flask搭建一个API服务器的步骤
2021/05/28 Python
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
Redis 哨兵机制及配置实现
2022/03/25 Redis
使用Django框架创建项目
2022/06/10 Python