我有以下脚本几乎完美的工作:
http://jsfiddle.net/oshirowanen/uUAqe/
我只需要它有一个附加功能,任何下拉列表都会自动关闭,无论用户点击的页面在哪里,无论是在页面的空白部分,在按钮上,在文本框中等等.
请在此处查看更新的jsFiddle页面:http://jsfiddle.net/KYqyU/
为了解释所做的事情,首先,将click事件绑定到将隐藏导航下拉列表的文档.
$(document).click(function() {
$('.dropdown').hide();
$('.navigation').removeClass("active");
});
Run Code Online (Sandbox Code Playgroud)
然后,修改类的click事件,.navigation以return 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回调函数作为参数/参数传递.