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 相关文章推荐
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
Sep 29 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
javascript 实现map集合
Apr 03 Javascript
原生JS仿QQ阅读点击展开、收起效果
Mar 08 Javascript
Angular实现的table表格排序功能完整示例
Dec 22 Javascript
Nuxt.js SSR与权限验证的实现
Nov 21 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
JS FormData对象使用方法实例详解
Feb 12 Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 jQuery
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
比较搞笑的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
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
Python的迭代器和生成器
2015/07/29 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python实现整数的二进制循环移位
2019/03/08 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
对Django中内置的User模型实例详解
2019/08/16 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
如何在django中添加日志功能
2020/02/06 Python
Python3 集合set入门基础
2020/02/10 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
岗位职责范本
2013/11/23 职场文书
给物业的表扬信
2014/01/21 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
MySQL系列之十二 备份与恢复
2021/07/02 MySQL
如何优化vue打包文件过大
2022/04/13 Vue.js
JS函数式编程实现XDM一
2022/06/16 Javascript
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers