2011-02-24 51 views

回答

6

请查看更新的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作为参数/参数传入点击回调函数。

2

尝试了这一点,以隐藏导航...

$('.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上的示例。

相关问题