关闭点击任意位置

osh*_*nen 1 jquery jquery-ui

我有以下脚本几乎完美的工作:

http://jsfiddle.net/oshirowanen/uUAqe/

我只需要它有一个附加功能,任何下拉列表都会自动关闭,无论用户点击的页面在哪里,无论是在页面的空白部分,在按钮上,在文本框中等等.

bet*_*max 6

请在此处查看更新的jsFiddle页面:http://jsfiddle.net/KYqyU/

为了解释所做的事情,首先,将click事件绑定到将隐藏导航下拉列表的文档.

$(document).click(function() {
    $('.dropdown').hide();
    $('.navigation').removeClass("active");
});
Run Code Online (Sandbox Code Playgroud)

然后,修改类的click事件,.navigationreturn false阻止文档事件传播并在此实例中隐藏导航.

$('.navigation').click(function() {
    $(this).siblings('.navigation.active').click();
    $(this).toggleClass('active').next().toggle();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

正如Mark所指出的那样,你可以用它event.StopPropagation()来阻止传播.如果使用此方法,则需要event将click回调函数作为参数/参数传递.