我有一个创建元素的脚本,创建过程的一部分是添加onclick事件(使用addEventListener),但是当我单击子元素时,会触发父元素的onclick事件。当源是子元素时,如何防止检测到点击?
答案 0 :(得分:3)
使用event.stopPropagation()
。这会停止Javascript事件的冒泡,并且只允许应用于目标元素的事件执行;
window.addEventListener("click", function(event){
// event here
event.stopPropagation();
}, false);
答案 1 :(得分:2)
问题是该事件正在冒泡到父母。
在孩子的onclick
事件中,告诉事件停止传播:
onclick = function (event) {
// ...
event.stopPropagation();
};
答案 2 :(得分:1)
父点击处理程序:(检查点击元素的ID)
function handler(e){
if(e.target.id != "parentID") return;
....
}