Event.eventPhase - イベントフェイズ
eventPhaseは、Eventのプロパティです。現在のイベントフェイズを表す数値を返します。この数値は定数に対応しています。
概要
- 名前
- eventPhase
- 所属
- Event
- IDL
readonly attribute unsigned short eventPhase;
- 仕様書
- https://dom.spec.whatwg.org/#dom-event-eventphase
説明
現在のイベントフェイズを表す数値を返す。
イベントフェイズに関しては、EventTargetのチュートリアルで説明しています。
- NONE (0)
- どの段階でもない。
- CAPTURING_PHASE (1)
- キャプチャリングフェイズ。
- AT_TARGET (2)
- ターゲットフェイズ。
- BUBBLING_PHASE (3)
- バブリングフェイズ。
デモ
Event.eventPhaseのデモです。button要素とdiv要素(#hoge)に同じイベントを設定しました。EventTarget.addEventListener()の第3引数の値を変更して、div要素のイベントが発生するタイミングを変更してみましょう。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<html>
<head>
<style>
div#hoge {
background-color: #fffff0 ;
padding: 24px ;
}
div#result {
white-space: pre-wrap ;
}
</style>
</head>
<body>
<div id="hoge">
<p><button id="run">実行</button></p>
<p><button id="clear">削除</button></p>
</div>
<hr>
<div id="result"></div>
<script>
/** try it! **/
var callbackFn = function ( event ) {
console.log( event.eventPhase ) ;
resultElement.appendChild( new Text( "currentTarget: " + event.currentTarget + "(#" + event.currentTarget.id + ")" + "\n" ) ) ;
resultElement.appendChild( new Text( "eventPhase: " + event.eventPhase + "\n→\n" ) ) ;
} ;
document.getElementById( "run" ).addEventListener( "click", callbackFn ) ; // button要素
document.getElementById( "hoge" ).addEventListener( "click", callbackFn, false ) ; // div要素
/** try it! **/
var resultElement = document.getElementById( "result" ) ;
document.getElementById( "clear" ).onclick = function ( event ) {
event.stopPropagation() ;
resultElement.innerHTML = "" ;
}
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● 19+ | ● | ● 6.0+ | ● | ● 9+ | ● | ● 6.0+ | ● 4.3+ |
関連記事
- 欠けた円を描く
- 欠けた円を描くには、arc()とlineTo()を組み合わせましょう。
- 複数行のテキストを描く
- 複数行のテキストを描画するには、水平位置を調整して1行ごとにレンダリングしていきます。
- Event.BUBBLING_PHASE
- BUBBLING_PHASEは、Eventの定数です。3を返します。この値は、イベントフェイズがバブリングフェイズであることを表します。
- Event.CAPTURING_PHASE
- CAPTURING_PHASEは、Eventの定数です。1を返します。この値は、イベントフェイズがキャプチャリングフェイズであることを表します。