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控制的遮罩层实例介绍
May 29 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
javascript模拟订火车票和退票示例
Apr 24 Javascript
分享一款基于jQuery的视频播放插件
Oct 09 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
跨域资源共享 CORS 详解
Apr 26 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
Dec 08 Javascript
动态加载JavaScript文件的3种方式
May 05 Javascript
微信小程序支付功能 php后台对接完整代码分享
Jun 12 Javascript
微信小程序授权登录及解密unionId出错的方法
Sep 26 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 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 Smarty模板生成html文档的方法
2010/04/12 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Python读大数据txt
2016/03/28 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
python3实现逐字输出的方法
2019/01/23 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Django的性能优化实现解析
2019/07/30 Python
Python socket处理client连接过程解析
2020/03/18 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
python 实现图片批量压缩的示例
2020/12/18 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
会计专业自我鉴定范文
2013/10/06 职场文书
中青班党性分析材料
2014/02/16 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
小学音乐课教学反思
2016/02/18 职场文书