javascript - 最好的办法 :not in jQuery?

标签 javascript jquery dom performance

我在 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/

相关文章:

javascript - 如何使用 Jquery/Javascript 计算 Asp.net 页面的加载时间?

javascript - 一个简单的 Nodejs MySQL 查询

jquery - 获取鼠标下 - 当前 DOM 元素 obj [while event-resize ] jQuery-ui

javascript - 如何禁用带有定时循环的按钮?

javascript - 将复选框组处理成字符串

javascript - 绑定(bind)值时日期时间格式太复杂,AngularJS

javascript - 在线弹出网站消息

javascript - 从下往左顺序填充内容

javascript - ReactJs if else 在渲染中

javascript - 更改div的innerHTML会清除整个内容