繁体   English   中英

如何使用event.stopPropagation()JavaScript

[英]How to use event.stopPropagation() JavaScript

我为事件分配了三个元素。 我应该如何使用event.stopPropagation以便仅执行元素#1和#2的事件,而不执行元素#3的事件? 我将event.stopPropagation放在元素2中,因为它停止冒泡。 以我的理解,它应该停止触发#3中的事件,但是它似乎不起作用,所有事件仍在执行。 这是JS代码:

  document.addEventListener("DOMContentLoaded", function() { document.querySelector('#element1').addEventListener('click', function(e) { console.log('Event in #element1 fired!'); }); document.querySelector('#element2').addEventListener('click', function(e) { event.stopPropagation(); console.log('Event in #element2 fired!'); }); document.querySelector('#element3').addEventListener('click', function(e) { console.log('Event in #element3 fired!'); }); }); 
 <div id="element3" class="element"> Element 3 <div id="element2" class="element"> Element 2 <div id="element1" class="element"> Element 1 </div> </div> </div> 

这行是错误的:

event.stopPropagation();

因为带有传递给函数的事件对象的参数名为e

您需要这样写:

e.stopPropagation();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM