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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
jQuery过滤选择器详解
Jan 13 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
JavaScript中常用的验证reg
Oct 13 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
vue权限问题的完美解决方案
May 08 Javascript
vue 实现上传组件
May 31 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
PHP用户指南-cookies部分
2006/10/09 PHP
第十五节--Zend引擎的发展
2006/11/16 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
PHP对象相关知识总结
2017/04/09 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
分页栏的web标准实现
2011/11/01 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
js+css实现打字效果
2020/06/24 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python中存取文件的4种不同操作
2018/07/02 Python
python 美化输出信息的实例
2018/10/15 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
对python中return与yield的区别详解
2020/03/12 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
公司节能减排方案
2014/05/16 职场文书
建筑工地标语
2014/06/18 职场文书
地球一小时宣传标语
2014/06/24 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
小孩不笨观后感
2015/06/03 职场文书
js作用域及作用域链工作引擎
2022/07/07 Javascript