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 表单取值常用代码
Dec 22 Javascript
js 动态文字滚动的例子
Jan 17 Javascript
js 金额文本框实现代码
Feb 14 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
Javascript中常用的检测方法小结
Oct 08 Javascript
JavaScript中日常收集常见的10种错误(推荐)
Jan 08 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
简单实现jQuery弹幕效果
May 06 jQuery
微信小程序支付之c#后台实现方法
Oct 19 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 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链表操作简单示例
2016/10/15 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
详解参数传递四种形式
2015/07/21 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
Python中apply函数的用法实例教程
2014/07/31 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Django--权限Permissions的例子
2019/08/28 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
优秀导游先进事迹材料
2014/01/25 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
企业法人授权委托书
2014/09/25 职场文书
督导岗位职责
2015/02/04 职场文书
信息简报范文
2015/07/21 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python