如何停止 JavaScript 中的事件冒泡?
How to stop event bubbling in JavaScript?
我在下面有这段代码,我想在点击子 div 时停止点击功能以启动,但我无法让它工作。我错过了什么?
child.addEventListener("click", function(e) {
e.stopPropagation();
});
这是CODEPEN应该使用它的地方。
添加
return false
到你的代码。应该可以。
e.preventDefault()
使用这个你将避免默认操作,例如当你点击<a>
时打开link
编辑
如果你打开代码笔,在JS末尾添加这段代码:
document.querySelector(".application-blurb").addEventListener("click", function(e){
e.preventDefault();
e.stopPropagation();
alert("You click");
});
您会注意到 OP 目标已实现
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);
}
我在下面有这段代码,我想在点击子 div 时停止点击功能以启动,但我无法让它工作。我错过了什么?
child.addEventListener("click", function(e) {
e.stopPropagation();
});
这是CODEPEN应该使用它的地方。
添加
return false
到你的代码。应该可以。
e.preventDefault()
使用这个你将避免默认操作,例如当你点击<a>
编辑
如果你打开代码笔,在JS末尾添加这段代码:
document.querySelector(".application-blurb").addEventListener("click", function(e){
e.preventDefault();
e.stopPropagation();
alert("You click");
});
您会注意到 OP 目标已实现
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);
}