+ -
当前位置:首页 → 问答吧 → jquery + ul 打造 Combobox 问题

jquery + ul 打造 Combobox 问题

时间:2009-03-27

来源:互联网

[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.2.6.min.js"></script>
<script type="text/javascript">
function JC_DropdownShow(oThis)
    {
        var $dropDown = $(oThis).siblings('ul');
        $dropDown.width($(oThis).width());
        $dropDown.css('top',$(oThis).height() + 5);
        $dropDown.children('li').unbind();
        $dropDown.children('li').click(
                                       function(){
                                           $(oThis).val($(this).attr('value'));
                                       });
        $dropDown.slideDown();
        $(oThis).unbind('blur');
        $(oThis).blur(function(){setTimeout(function(){$dropDown.slideUp();},200)});
    }
</script>
<style type="text/css">
<!--
.dropdown {
    position: relative;
}
.dropdown ul {
    margin: 0px;
    padding: 0px;
    position: absolute;
    top: 30px;
    border: 1px solid #666;
    list-style-type: none;
    width: 150px;
    z-index: 100;
    left: 0px;
    background-color: #FFF;
    display: none;
    overflow:auto;
    height:150px;
}
.dropdown ul li {
    font-size: 12px;
    color: #333;
    text-decoration: none;
    padding: 3px;
    cursor:pointer;
    margin: 0px;
}
.dropdown ul li:hover {
    background-color: #FFC;
}
-->
</style>
</head>
<body>
<div class="dropdown">
    <input name="textfield" type="text" class="TextBox" id="textfield"  onfocus="JC_DropdownShow(this);" />
    <ul>
        <li value="5">随笔</li>
        <li value="7">网页设计</li>
        <li value="10">用户体验</li>
        <li value="5">随笔</li>
        <li value="5">随笔</li>
        <li value="7">网页设计</li>
        <li value="10">用户体验</li>
        <li value="5">随笔</li>
        <li value="5">随笔</li>
        <li value="7">网页设计</li>
        <li value="10">用户体验</li>
        <li value="5">随笔</li>
    </ul>
</div>
</body>
</html>
[/code]
文本框获取焦点后,下拉层弹出,本想让文本框失去焦点后下拉层隐藏,这个没有问题,问题是,滚动下拉层的滚动条时,就已经触发了失去焦点事件,层已经消失了。火狐没有问题,IE可就问题大了。。6、7、8 全部失去焦点了。。。我可不希望这样子……求救啊。。。
已附上DEMO代码。。

作者: wxmaple   发布时间: 2009-03-27