繁体   English   中英

如何在 Javascript 中使用事件委托?

[英]How to use event delegation in Javascript?

elem.addEventListener('click',function(e){
    if(e.target && e.target.matches("span#save-icon")){
      var HEX = e.target.parentNode.innerHTML.split('span')[2].split('>')[2].split('<')[0];
      save_to_my_space(HEX);
      console.log(HEX);
    }
  });

这里elem是一个有 8 个孩子的父 div,我在elem所有子元素上使用委托事件。 每当我通过单击elem事件的子级之一触发事件时,它会被多次触发,次数等于elem的子级数。 如何解决这个问题?

使用event.stopPropagation()将解决问题

正如@George 所提到的,请在此处查看文档

elem.addEventListener('click',function(e){
    if(e.target && e.target.matches("span#save-icon")){
      e.stopPropagation()
      var HEX = e.target.parentNode.innerHTML.split('span')[2].split('>')[2].split('<')[0];
      save_to_my_space(HEX);
      console.log(HEX);
    }
  });

暂无
暂无

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

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