阻止Javascript事件影响子元素

时间:2012-08-20 18:47:59

标签: javascript events

我有一个创建元素的脚本,创建过程的一部分是添加onclick事件(使用addEventListener),但是当我单击子元素时,会触发父元素的onclick事件。当源是子元素时,如何防止检测到点击?

3 个答案:

答案 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;
  ....
}