Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除元素的单击事件的方法_Javascript_Jquery_Dom_Onclick_Event Bubbling - Fatal编程技术网

Javascript 删除元素的单击事件的方法

Javascript 删除元素的单击事件的方法,javascript,jquery,dom,onclick,event-bubbling,Javascript,Jquery,Dom,Onclick,Event Bubbling,我有一个元素foo,上面有click事件。元素foo位于元素栏中,元素栏上也有click事件 <div id="bar"> <div id="foo" /> </div> 单击foo时,将调用bar事件并忽略foo事件。这就是我现在想要的 我正在寻找一种从foo元素中删除所有click事件的方法,除了我的justset事件和foo的父元素上的所有事件 编辑:这里是。我希望第二场比赛在第一场比赛之前接到电话 编辑2:这里是。不起作用。试试这个 $('#fo

我有一个元素foo,上面有click事件。元素foo位于元素栏中,元素栏上也有click事件

<div id="bar">
  <div id="foo" />
</div>
单击foo时,将调用bar事件并忽略foo事件。这就是我现在想要的

我正在寻找一种从foo元素中删除所有click事件的方法,除了我的justset事件和foo的父元素上的所有事件

编辑:这里是。我希望第二场比赛在第一场比赛之前接到电话

编辑2:这里是。不起作用。

试试这个

$('#foo').click(function(e){
     e.preventDefault();
     e.stopPropagation(); 
     $('#bar').trigger('click');
});

如果您在foo上有一个单击事件,并且您不希望它冒泡,您可以执行以下操作:

$("#foo").on('click', function(e){
     e.preventDefault();
     e.stopPropagation(); //this line will stop the click bubbling up the tree.
});

使用stopPropagation函数,请参见示例:

$("#foo").click(function(e) {
   e.stopPropagation();
})

将首先根据事件委派模型处理最顶端的onclick事件。好的,您尝试过什么吗?我没有尝试过任何东西,但我想我需要递归地向上移动DOM树并删除事件。单击foo时,会调用bar事件,而忽略foo事件。这是真的,如果特别注意的话。否则,将调用这两个事件。首先是foo,然后是bar。你的foo元素没有内容,你确定你真的在点击它吗?调用e.preventDefault不会阻止事件冒泡到bar。嗯,在我的示例中,这不起作用。实际情况是有一个$body.onclick,foo。。。然后像上面的5个节点一样有$baz。选择。单击。。。。我在第一个事件中添加了这些行,但没有调用该事件!更新的问题代码显示:您的建议无效。