作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在 jQuery 中有一个菜单,当你点击一个链接时它会打开,但我想要它所以当你点击其他地方时,其他任何不是菜单的地方,它就会隐藏起来。
目前我正在绑定(bind)一个点击事件
$(':not(#the_menu)')
但这似乎是我将点击事件绑定(bind)到整个减去菜单,有没有更有效的方法来做这样的事情?
最佳答案
最好的方法是使用冒泡捕获,如下所示:
$(document).click(function() {
//close menu
})
$("#the_menu").click(function(e) {
e.stopPropagation();
});
它的工作原理是每次点击气泡(除非你停止它,通常通过 return false;
或 event.stopPopagation()
),所以无论你点击气泡一直到 DOM...如果一个单击这样做,我们关闭菜单。如果它来自菜单的内部,我们会阻止气泡...所以点击不会冒泡,触发关闭。这种方法只使用 2 个事件处理程序而不是 1 个处理程序, 菜单,所以非常轻量级:)
关于javascript - 最好的办法 :not in jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720766/
我是一名优秀的程序员,十分优秀!