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 相关文章推荐
基于datagrid框架的查询
Apr 08 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
分享两款带遮罩的jQuery弹出框
Dec 30 Javascript
Angular2 (RC5) 路由与导航详解
Sep 21 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
vue 自定义提示框(Toast)组件的实现代码
Aug 17 Javascript
Vuejs+vue-router打包+Nginx配置的实例
Sep 20 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
Ajax实现局部刷新的方法实例
Mar 31 Javascript
微前端qiankun改造日渐庞大的项目教程
Jun 21 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
深入密码加salt原理的分析
2013/06/06 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
js中indexof的用法详细解析
2013/12/24 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
python实现控制COM口的示例
2019/07/03 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
pandas分组聚合详解
2020/04/10 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
社区庆中秋节活动方案
2014/02/07 职场文书
年底个人总结范文
2015/03/10 职场文书
2015年外联部工作总结
2015/04/03 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
公司年会主持词范文!
2019/05/07 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书