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 相关文章推荐
Save a File Using a File Save Dialog Box
Jun 18 Javascript
jquery如何扑捉回车键触发的事件
Apr 24 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
js实现仿爱微网两级导航菜单效果代码
Aug 31 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
JavaScript中循环遍历Array与Map的方法小结
Mar 12 Javascript
浅谈js中对象的使用
Aug 11 Javascript
jQuery validata插件实现方法
Jun 25 jQuery
手把手教你 CKEDITOR 4 扩展插件制作
Jun 18 Javascript
JavaScript实现横版菜单栏
Mar 17 Javascript
video.js添加自定义组件的方法
Dec 09 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
PHP单例模式详细介绍
2015/07/01 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python编程之属性和方法实例详解
2015/05/19 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
几道PHP的面试题
2012/05/19 面试题
护士进修自我鉴定
2014/02/07 职场文书
《雾凇》教学反思
2014/02/17 职场文书
项目施工员岗位职责
2014/03/09 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
中小企业员工手册范本
2015/05/14 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
高中数学教学反思范文
2016/02/18 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python