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 是一个父div,有8个孩子,我在 elem 的所有子元素上使用委托事件。每当我通过单击 elem 的子项之一触发事件时,事件会被触发多次,等于chidlren elem 的数量。如何解决这个问题?
答案 0 :(得分:4)
使用event.stopPropagation()
将解决问题
如@George所述,请查看文档here.
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);
}
});