6

transitionendイベントをにバインドしましたdiv1div1の遷移が終了すると、イベントが実行されました。大丈夫。

私は特別なケースに遭遇しました:

これに 3 つの段落を追加しdiv1、各段落の遷移が終了すると、div1transitionendイベントも実行されました。そのため、transitionendイベントは 4 回実行されました。>.<

div1transitionendイベントのリスナー関数の本体で、 !== が表示されevent.targetますthis。かなりばかげていると思います!

Chrome と Firefox の両方にこの問題があります。したがって、これはブラウザの HTML5 仕様実装のバグではないと思います。

transitionend要素のイベントがこの要素の子要素によってもトリガーされる理由を誰か説明できますか?

ありがとうございました。

4

1 に答える 1

12

これは、イベント バブリングと呼ばれます。子要素で発生する多くのイベントは、元のオブジェクトでイベント ハンドラーが呼び出された後、デフォルトで親を介してバブル アップします。オブジェクトを調べて気付いたようにバブリングを検出するかevent、ソース オブジェクトでイベントを処理するときに伝播を停止してバブリングを防ぐことができます。

伝播の停止は、IE と他のブラウザーで異なる点の 1 つです。他のブラウザーでは、次を呼び出します。

event.stopPropagation()

IE9 より前の IE では:

window.event.cancelBubble = true;
于 2012-08-18T21:31:59.257 に答える