如何在外部单击时使用Jquery关闭下拉框

时间:2014-08-08 12:02:52

标签: javascript jquery

所以我有这个下拉框,我想在它外面点击时关闭它,我怎么能得到它?

 $(document).ready(function(){
    jQuery('ul.nav li.dropdown').click(function() {
        jQuery(this).find('.dropdown-menu').fadeIn();

        $("#actionStatus").html("");


        });
        $("body:not(ul.nav li.dropdown)").hover(function(){
$("ul.nav li.dropdown").find('.dropdown-menu').fadeOut();
});

    $("#btnSendOption").click(function(){
        var data = $("#frmUserOption").serialize();
        $.ajax({
            url: "/users.php",
            data: data,
            success: function( data ) {
                $("#actionStatus").html("");
                $("input[type='radio']").attr('checked', false);
                $('.dropdown-menu').delay(1000).fadeOut();
            },
            error: function(data) {
                $("#actionStatus").html("<div class='alertMsg alertMsg-danger'>Error, try again later</div>");
            }
        });
    });
});

非常感谢任何帮助。提前谢谢。

3 个答案:

答案 0 :(得分:1)

可能是这样的:(没有测试过它)

$(document).ready(function(){
    $('ul.nav li.dropdown').click(function() {
        var $this = $(this);
        $("body").one("click",":not('ul.nav li.dropdown')", function(){
             $this.find('.dropdown-menu').fadeOut();
        });
        $this.find('.dropdown-menu').fadeIn();
        $("#actionStatus").html("");
    });
});

答案 1 :(得分:1)

您可以使用:

$("body:not(ul.nav li.dropdown)").hover(function(){
    $("ul.nav li.dropdown").find('.dropdown-menu').fadeOut();
})

答案 2 :(得分:1)

我为你创建了一个简单的jsbin,其中有一个我认为你需要的例子。我添加了一些简单的html作为参考,只是猜测你需要什么......

http://jsbin.com/bodoxixa/1/edit?html,js,output