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 相关文章推荐
禁止JQuery中的load方法装载IE缓存中文件的方法
Sep 11 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
JS判断字符串包含的方法
May 05 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
vuex的简单使用教程
Feb 02 Javascript
vue template中slot-scope/scope的使用方法
Sep 06 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
Oct 26 Javascript
node中使用es6/7/8(支持性与性能)
Mar 28 Javascript
Cordova(ionic)项目实现双击返回键退出应用
Sep 17 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
Python切换pip安装源的方法详解
2016/11/18 Python
Django的分页器实例(paginator)
2017/12/01 Python
python机器人行走步数问题的解决
2018/01/29 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
聊聊python中的异常嵌套
2020/09/01 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
员工培训邀请函
2014/02/02 职场文书
中专自我鉴定
2014/02/05 职场文书
函授自我鉴定范文
2014/02/06 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
美元符号 $
2022/02/17 杂记