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 に答える