js 自定义的联动下拉框


Posted in Javascript onFebruary 07, 2010

觉得这个下拉框已经稍微能满足美观需求了,

js 自定义的联动下拉框 

这个是点出来的效果,写了键盘的方向键,回车,esc等 事件, 并且能根据页面的底部距离判断是否向上展示

今天弄了个联动的,顺便贴部分代码

效果预览:

 js 自定义的联动下拉框

 以下代码解决了ie6的兼容问题

$containerDivText.mousedown(function() { 
setTimeout( 
function() { 
if ($newUl[0].style.display == 'block') { 
$newUl.hide(); 
positionHideFix(); 
return false; 
} 
$containerDiv.focus(); 
//show list 
$newUl.slideDown(100); 
positionFix(); 
//when keys are pressed 
document.onkeydown = function(e) { 
if (e == null) { // ie 
var keycode = event.keyCode; 
} else { // everything else 
var keycode = e.which; 
} 
//enter key or esc key pressed, hide list 
if (keycode == 13 || keycode == 27) { 
$newUl.hide(); 
positionHideFix(); 
return false; 
} 
} 
}, 1); 
//the function settimeout is used for ie6, because if you click the element where you hava focused on the element, 
//ie6 would think you click it twice(2010-2-4) 
});

以下代码解决了下拉框事件定义功能匮乏问题
代码
if (!opts.callbackfn) { 
$newLi.click(function(e) { 
var $clickedLi = jQuery(e.target), 
text = $clickedLi.text(); 
//update counter 
currentIndex = $newLi.index($clickedLi); 
//remove all hilites, then add hilite to selected item 
$newLi.removeClass('hiLite'); 
$clickedLi.addClass('hiLite'); 
setSelectText(text); 
$newUl.hide(); 
$containerDiv.css('position', 'static'); //ie 
}); 
} else { 
$newLi.click(function(e) { 
var $clickedLi = jQuery(e.target), 
text = $clickedLi.text(); 
//update counter 
currentIndex = $newLi.index($clickedLi); 
//remove all hilites, then add hilite to selected item 
$newLi.removeClass('hiLite'); 
$clickedLi.addClass('hiLite'); 
setSelectText(text); 
$newUl.hide(); 
$containerDiv.css('position', 'static'); //ie 
(opts.callbackfn)(this.value); 
}); 
} //param callbackfn means you can define a event function from every li in the ul;(2010-2-4)

然后是页面的应用,

代码

<script type="text/javascript"> 
jQuery(document).ready(function() { 
jQuery("#my-dropdown2").hide(); 
jQuery('#my-dropdown1').sSelect( 
{ defaultText: "", 
callbackfn: function(value) { 
if (value == 1) { 
jQuery("#my-dropdown2_list").parent().remove(); 
jQuery("#linkc_value").val(value); 
return; 
} 
jQuery.getJSON( 
'/Department.mvc/GetSubDepartment?DepartmentID=' + value, 
function(list) { 
jQuery("#my-dropdown2_list").parent().remove(); 
jQuery("#my-dropdown2").html(""); 
var temp = ""; 
temp += "<option value=''>请选择部门</option>"; 
for (var i = 0; i < list.length; i++) { 
temp += "<option value=" + list[i].DepartmentID + ">" + list[i].DepartmentName + "</option>"; 
} 
jQuery("#my-dropdown2").html(temp); 
jQuery("#my-dropdown2").show(); 
jQuery('#my-dropdown2').sSelect({ 
callbackfn: function(value) { 
jQuery("#linkc_value").val(value); 
} 
}); 
} 
); 
} 
} 
); 
// killErrors = function(){ return true; } 
// window.onerror = killErrors; 
}); 
function linkc() { 
location.href = "/User.mvc/Front?DepartmentID=" + jQuery("#linkc_value").val(); 
} 
</script>

这三块只是部分
但是花的时间较多 其它代码不贴了 有问题留言吧。。。
Javascript 相关文章推荐
js中将字符串转换成json的三种方式
Jan 12 Javascript
javascript自动改变文字大小和颜色的效果的小例子
Aug 02 Javascript
js控制淡入淡出示例代码
Nov 12 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
Sep 25 Javascript
基于JavaScript判断两个对象内容是否相等
Jan 10 Javascript
JavaScript实现放大镜效果代码示例
Apr 29 Javascript
Vue-resource安装过程及使用方法解析
Jul 21 Javascript
uniapp开发小程序的经验总结
Apr 08 Javascript
比较搞笑的js陷阱题
Feb 07 #Javascript
javascript 鼠标拖动图标技术
Feb 07 #Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
Feb 07 #Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 #Javascript
JavaScript 精粹读书笔记(1,2)
Feb 07 #Javascript
一些mootools的学习资源
Feb 07 #Javascript
Js 中debug方式
Feb 07 #Javascript
You might like
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
php 的反射详解及示例代码
2016/08/25 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python下MySQLdb用法实例分析
2015/06/08 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
个人借款担保书
2014/04/02 职场文书
公证委托书模板
2014/04/03 职场文书
三好生演讲稿
2014/09/12 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
财务工作失误检讨书
2015/02/19 职场文书
自荐信格式范文
2015/03/04 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
交通事故调解协议书
2015/05/20 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers