如何在JavaScript中停止事件冒泡?

时间:2016-09-20 08:33:21

标签: javascript jquery event-bubbling

我在下面有这个代码,我想在点击子div时停止点击功能,但是我无法让它工作。我错过了什么?

child.addEventListener("click", function(e) {
e.stopPropagation();
});

以下是CODEPEN应该使用的地方。

3 个答案:

答案 0 :(得分:1)

e.preventDefault()

使用此功能可以避免dafault操作,例如点击<a>时打开链接

修改

如果您打开代码笔并在JS结尾添加此代码:

 document.querySelector(".application-blurb").addEventListener("click", function(e){
   e.preventDefault();
   e.stopPropagation();
   alert("You click");                                                                                 
 });

您将注意到OP目标已实现

答案 1 :(得分:1)

child是元素集合(数组)... 你必须循环它:

for(var i=0; i<child.length; i++){
  child[i].addEventListener("click", function(e) {
    if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}
  }, false);
}

答案 2 :(得分:-1)

添加

return false 

代码。它应该工作。