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最新动画教程+iso光盘下载
Jan 22 Javascript
详解Javascript事件驱动编程
Jan 03 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
浅析JavaScript中作用域和作用域链
Dec 06 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
JS非空验证及邮箱验证的实例
Aug 11 Javascript
JavaScript实用代码小技巧
Aug 23 Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 06 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
Apr 04 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 Javascript
openLayer4实现动态改变标注图标
Aug 17 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 array_search() 函数使用
2010/04/13 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
js null undefined 空区别说明
2010/06/13 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
python验证码识别实例代码
2018/02/03 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
将python安装信息加入注册表的示例
2019/11/20 Python
简单的命令查看安装的python版本号
2020/08/28 Python
Python random模块的使用示例
2020/10/10 Python
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
应届生简历中的自我评价
2014/01/13 职场文书
承认错误的检讨书
2014/01/30 职场文书
房屋租赁协议书
2014/10/18 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
《假如》教学反思
2016/02/17 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers