如何在Firefox中取消事件冒泡?

时间:2012-06-20 06:12:10

标签: javascript firefox event-bubbling

我有一个表单元格(td),单击时会触发脚本。我在该表格单元格中有一个div,在单击时会触发另一个div。我已成功使用下面的代码取消事件冒泡(因此div事件不会触发td事件)。

if (!e) var e = window.event;

e.cancelBubble = true;
e.stopImmediatePropagation();
e.returnValue = false;

if (e.stopPropagation)
{
    e.stopImmediatePropagation();
    e.stopPropagation();
    e.preventDefault(); 
}

一切都在Chrome,Safari和Opera中运行。为什么不阻止Firefox中的事件冒泡?是否有某种我需要注意的Firefox修复程序?

2 个答案:

答案 0 :(得分:1)

我认为event.stopImmediatePropagation()会阻止来自同一事件的其他侦听器被调用,从而在无效后调用event.stopPropagation()。请尝试使用event.stopPropagation()

答案 1 :(得分:0)

我相信这段代码应该足够了:

e = e || window.event;

if (e.stopPropagation) {
  e.stopPropagation();
}

// other piece of code here