js 自定义的联动下拉框

 更新时间:2010年02月07日 12:40:13   作者:  
一直都嫌下拉框这个html控件难看,之前弄了个<div><ul><li></li></ul></div>版的下拉框.

觉得这个下拉框已经稍微能满足美观需求了,

 

这个是点出来的效果,写了键盘的方向键,回车,esc等 事件, 并且能根据页面的底部距离判断是否向上展示

今天弄了个联动的,顺便贴部分代码

效果预览:

 

 以下代码解决了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>

这三块只是部分
但是花的时间较多 其它代码不贴了 有问题留言吧。。。

相关文章

  • 详解webpack4之splitchunksPlugin代码包分拆

    详解webpack4之splitchunksPlugin代码包分拆

    这篇文章主要介绍了详解webpack4之splitchunksPlugin代码包分拆,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • stats.js使用性能监控源码解读

    stats.js使用性能监控源码解读

    这篇文章主要为大家介绍了stats.js使用性能监控源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • ES6新特性之数组、Math和扩展操作符用法示例

    ES6新特性之数组、Math和扩展操作符用法示例

    这篇文章主要介绍了ES6新特性之数组、Math和扩展操作符用法,结合实例形式分析了ES6中数组、Math和扩展操作符的新特性、使用方法及相关注意事项,需要的朋友可以参考下
    2017-04-04
  • 解决js图片加载时出现404的问题

    解决js图片加载时出现404的问题

    这篇文章主要为大家详细介绍了解决js图片加载时出现404问题的方法,具有一定的参考价值,这方面有困惑的朋友可以参考一下
    2015-11-11
  • JS调用CS里的带参方法实例

    JS调用CS里的带参方法实例

    js调用CS里的方法有很多,我用一种简单的方法,如下,有需要的朋友可以参考一下
    2013-08-08
  • javaScript实现浮点数转十六进制字符

    javaScript实现浮点数转十六进制字符

    浮点数转十六进制的方法有很多,在本文将为大家详细介绍下js中时如何实现的,下面有个不错的示例,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-10-10
  • Three.js利用顶点绘制立方体的方法详解

    Three.js利用顶点绘制立方体的方法详解

    最近在学习three.js,将学习中遇到的知识点总结分享出来,下面这篇文章主要给大家介绍了关于Three.js利用顶点绘制立方体的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • 200行代码实现blockchain 区块链实例详解

    200行代码实现blockchain 区块链实例详解

    这篇文章主要介绍了200行代码实现blockchain 区块链的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-03-03
  • javascript实现回到顶部特效

    javascript实现回到顶部特效

    当页面特别长的时候,用户想回到页面顶部,必须得滚动好几次滚动键才能回到顶部,如果在页面右下角有个“返回顶部”的按钮,用户点击一下,就可以回到顶部,对于用户来说,是一个比较好的体验。
    2015-05-05
  • 浅谈javascript获取元素transform参数

    浅谈javascript获取元素transform参数

    本文主要给大家简单介绍了javascript获取元素的transform参数的方法以及个人的理解,记录下来分享给大家。
    2015-07-07

最新评论