DOM

Event.eventPhase プロパティ

 編集:2022.09.16 by T.A.

[Edge]。読取専用。→

Event のイベントのキャプチャーリング/バブリングに於けるイベント フロー(¶経過)がどの段階に評価されているかを示します。

構文
Event.eventPhase
Event イベント オブジェクト(¶EventMouseEvent、…)。

整数値で、イベント フローの現在の評価段階を指定する値を返します。

比較値用に値が定義されています。

定義名説明
Event.NONE 0 現在、このイベントは処理されていません。
Event.CAPTURING_PHASE 1 イベントはターゲットの祖先オブジェクトを通じて伝播されます。この処理は Window から始まり、Document、HTMLHtmlElement と、ターゲットの親に到達するまで要素を介して行われます。キャプチャモード向けに EventTarget.addEventListener() が呼ばれた時に登録されたイベント リスナーは、この段階で起動されます。
Event.AT_TARGET 2 このイベントがイベントのターゲットに到達しています。この段階向けに登録されたイベント リスナーは、この時点で呼び出されます。もし Event.bubbles が false ならば、この段階の終了後にイベントの処理を終了します。
Event.BUBBLING_PHASE 3 イベントはターゲットの祖先を逆順に伝播していきます。親から始まり、最終的に Window を含む先祖に到達します。これはバブリングと呼ばれ、Event.bubbles が true のときのみ発生します。この段階向けに登録されたイベント リスナーは、この処理中に起動されます。

HTML:

<DIV onclick="Job(event)" style="border:1px solid black">DIV1
  <DIV style="border:1px solid black">DIV2
  </DIV>
</DIV>
<SPAN id=IdLog>IdLog</SPAN>

JavaScript:

function Job(eve){  //clickイベントが入った時の処理:eveはeventオブジェクトが入る。
  let Y=eve.target; //イベントが起こった要素オブジェクトを取得。
  IdLog.innerText=Y.innerText +":"+ eve.eventPhase; //情報を記録。テキスト内容、イベントの浮上の状態。
}

実行結果:

DIV1をクリックすると、

DIV1
DIV2:2

と、なり、イベントがターゲットに達したことになる。

DIV2をクリックすると、

DIV2:3

と、なり、イベントがターゲットに達していない、経過中であることになる。


テスト