大家好,
我正在尝试使用jquery构建一个简单的自定义选择框。

的HTML:

<div class="select">
    <ul>
        <li class="option darr">Dropdown one</li>
        <li class="option">Dropdown two</li>
        <li class="option">Dropdown three</li>
    <ul>
</div>


jQuery的:

$('.select ul li.option').click(function() {
    $(this).siblings().toggle().removeClass('darr');
    $(this).addClass('darr');
})


您可以在此处查看工作示例:http://jsfiddle.net/WFTvq/2/

这实际上可以正常工作,但是有一件小事困扰我。
当我单击自定义选择字段时,将显示所有选项。如果我没有选择任何一个选项,然后单击窗口上的其他任何位置,则下拉菜单不会自动折叠。

如果我单击屏幕上的其他任何位置,则普通选择框将折叠,如何在示例中实现该行为?

谢谢

H

最佳答案

Make a search menu disappear when the search field loses focus, but still allow user to click on links处回答了类似的问题

您可以执行以下操作来检测何时在外部单击了鼠标

$(document).click(function(){
   ...
});


您示例的完整代码

$('.select ul li.option').click(function(e) {
    e.stopPropagation();
    $(this).siblings().toggle().removeClass('darr');
    $(this).addClass('darr');
});


$(document).click(function() {
    $('.select ul li.option').siblings().not('.darr').css('display', 'none');
});


http://jsfiddle.net/WFTvq/3/中查看工作示例

关于jquery - jQuery:自定义选择框-当未选择任何内容时折叠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5206789/

10-11 22:35
查看更多