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入门教程(8) Location地址对象
Jan 31 Javascript
Javascript 判断Flash是否加载完成的代码
Apr 12 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
May 28 Javascript
详解JavaScript中循环控制语句的用法
Jun 03 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
Oct 10 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
Mar 25 Javascript
js实现短信发送倒计时功能(正则验证)
Feb 10 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
vue+axios+mock.js环境搭建的方法步骤
Aug 28 Javascript
Vue父子组件之间的通信实例详解
Sep 28 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支持页面回退的两种方法
2008/01/10 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
python爬取音频下载的示例代码
2020/10/19 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
中学教师管理制度
2014/01/14 职场文书
学年自我鉴定
2014/01/16 职场文书
小学开学寄语
2014/01/19 职场文书
置业顾问岗位职责
2014/03/02 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
教师群众路线心得体会
2014/11/04 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
违纪开除通知书
2015/04/25 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
编写python程序的90条建议
2021/04/14 Python
Python基本知识点总结
2022/04/07 Python
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL