我有以下脚本,它几乎是完美的作品:关闭上点击任何地方
http://jsfiddle.net/oshirowanen/uUAqe/
我只需要它有1个附加能力,其中任何下拉菜单会自动关闭无论身在何处页面上的用户点击,无论是在页面的空白部分,上的一个按钮,在一个文本框等等等等
我有以下脚本,它几乎是完美的作品:关闭上点击任何地方
http://jsfiddle.net/oshirowanen/uUAqe/
我只需要它有1个附加能力,其中任何下拉菜单会自动关闭无论身在何处页面上的用户点击,无论是在页面的空白部分,上的一个按钮,在一个文本框等等等等
请查看更新的jsfiddle页面在这里:http://jsfiddle.net/KYqyU/
解释什么是做,首先,你绑定的点击EV用于隐藏导航下拉菜单的文档。
$(document).click(function() {
$('.dropdown').hide();
$('.navigation').removeClass("active");
});
然后在这之后,您修改到return false
在.navigation
类的单击事件,从传播并隐藏在这种情况下,导航站的文档事件。
$('.navigation').click(function() {
$(this).siblings('.navigation.active').click();
$(this).toggleClass('active').next().toggle();
return false;
});
正如Mark也指出的那样,您可以使用event.StopPropagation()
来停止传播。如果您使用此方法,则需要将event
作为参数/参数传入点击回调函数。
尝试了这一点,以隐藏导航...
$('.navigation').click(function(event) {
$(this).siblings('.navigation.active').click();
$(this).toggleClass('active').next().toggle();
event.stopPropagation();
});
$(document).click(function(event) {
$('.navigation.active').click();
$('.navigation').removeClass("active");
});
这使用event.StopPropagation()其停止冒泡的DOM的任何事件。因为我们只有当.navigation
不是单击的元素时才触发隐藏。
jsfiddle上的示例。