2

我有一个表格单元格(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 修复吗?

4

2 回答 2

1

我认为event.stopImmediatePropagation()阻止同一事件的其他听众被调用,从而event.stopPropagation()在无效后进行调用。尝试使用event.stopPropagation().

于 2012-06-20T06:22:52.797 回答
0

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

e = e || window.event;

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

// other piece of code here
于 2012-06-20T06:20:19.367 回答