javascript - stopPropagation() 但保持其他点击事件处于事件状态

标签 javascript jquery

我有一些 jQuery 代码来关闭我的菜单:

$('body').click(function(){
  $('#menu').hide();
});
$("#menu").click(function(e) {
  e.stopPropagation();
  return false;       
});

但是在我的 #menu 元素上,我有一些附加了点击事件的元素:

$('.menu_elem').live("click", function(){
  //Do something
});

我的问题是 e.stopPropagation() 阻止了我的菜单的点击事件。我怎样才能避免这种情况?

最佳答案

您可以使用 e.target 包含或排除 stopPropagation 条件下的元素,

$("#menu").click(function(e) {
   if(e.target.id == "menu")
   {
     e.stopPropagation();
     return false;       
   }
});

关于javascript - stopPropagation() 但保持其他点击事件处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486995/

相关文章:

javascript - 使用 jquery 删除一个 div 但将 div 保留在其中

javascript - 向 Rails 模型提交值

javascript - Sticky '_calc' 不是该元素的可用方法

jquery - 这个html5数据属性有什么问题

javascript - 使用 Ember 存储和模型作为 JqGrid 的源数据

javascript - Div 右对齐并根据右侧的其他 Div 更改 x 位置

javascript - 在 Node 6 中使用 crypto.pbkdf2Sync 返回与 Node 4 不同的哈希值

javascript - 使用 bootstrap-modal modalOverflow 检测滚动事件?

javascript - 全屏视频无黑边

javascript - express.js 文档