除了一个div之外,jquery选择整个身体

时间:2011-10-12 21:23:50

标签: jquery toggle

除了一个div,我想选择整个身体。或者也许有人更了解如何解决我的问题。

我想点击“cs-dropdown”点击切换,然后如果有人在身体的任何地方点击它,就会隐藏它。问题是“cs-dropdown”在我用“cs-dropdown”打开它之后就在体内。点击我关闭它然后点击身体。谢谢你的帮助。

$(".cs-dropdown").click(function () {
        $(".customer-service-dd").toggle();
});


$("body").click(function () {

    if($(".customer-service-dd").is(":visible") == true)
    {
    $(".customer-service-dd").toggle();
    }

});

4 个答案:

答案 0 :(得分:1)

我想你想要这样的东西:

How do I use jQuery to select all children except a select element

$('body').not('#theItemYouDontWant');

我只是在猜测=)

答案 1 :(得分:1)

使用 stopPropagation() 阻止事件冒泡到身体:

$(".cs-dropdown").click(function (ev) {
    ev.stopPropagation();
    $(".customer-service-dd").toggle();
});

答案 2 :(得分:0)

变化:

$("body").click(function () {

    if($(".customer-service-dd").is(":visible") == true)
    {
    $(".customer-service-dd").toggle();
    }

});

要:

$("body").live('click', function () {

    if($(".customer-service-dd").is(":visible") == true)
    {
    $(".customer-service-dd").toggle();
    }

});

答案 3 :(得分:0)

您点击下拉列表会向上传播到正文,以便调用两个点击处理程序。您可以使用e.stopPropagation()阻止事件传播。这样就不会调用父元素上相同事件的处理程序。在e.stopPropagation()点击处理程序中添加.cs-dropdown

$(".cs-dropdown").click(function (e) {
    e.stopPropagation();
    $(".customer-service-dd").toggle();
});