仅当用户单击 .menu_root
时,我才尝试使用 jQuery slideUp()
隐藏 .menu_branch
。我没有收到任何错误,但即使单击 .menu_root
,click()
函数也会执行。有任何想法吗? jQuery 或直接 JavaScript 对我来说都很好。谢谢!
HTML:
<span class="menu_root">Menu</span>
<ul class="menu_branch">
<li><a href="#">Home</a></li>
<li><a href="#">FAQ</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
CSS:
.menu_branch {
display:block;
}
Jquery:
$("body:not(.menu_root)").click(function(){
$(".menu_branch").slideUp("fast");
});
我也尝试过:
$("body").not(".menu_root").click(function(){
$(".menu_branch").slideUp("fast");
});
以及在这两个实例中将 body
替换为 *
,所有结果都相同。
最佳答案
一种可能的解决方案是阻止从 menu_root
传播点击事件
$(document).click(function () {
$(".menu_branch").slideUp("fast");
});
$('.menu_root').click(function (e) {
e.stopPropagation();
})
演示:Fiddle
您的代码将忽略 body
具有类的元素 menu_root
喜欢 <body class="menu_root">
关于javascript - 选择除某个类之外的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22112761/