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 表单的友好用户体现
Jan 07 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
Jul 08 Javascript
基于JQuery的多标签实现代码
Sep 19 Javascript
动态创建按钮的JavaScript代码
Jan 29 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
AngularJS中的JSONP实例解析
Dec 01 Javascript
AngularJS实现表单验证功能
Jan 09 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 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 Google的translate API代码
2008/12/10 PHP
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
python实现发送邮件功能代码
2017/12/14 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python如何制作缩略图
2019/04/30 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
浅谈Python中的字符串
2020/06/10 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
小露珠教学反思
2014/04/30 职场文书
文艺晚会策划方案
2014/06/11 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript