capturing phase

相 (DOMイベント)

仕様書

相

[11] イベントの dispatch (によるイベントリスナーの呼び出し) には、 次の3つ (+ 1) の相 (フェーズ) があります。

name
通称
phase
eventPhase 属性値 (定数名)
value
eventPhase 属性値 (数値)
dir
イベントリスナー実行順
capture
実行されるイベントリスナーの捕獲
bubbles
イベントリスナーが実行される bubbles
phase
NONE
value
0
name
捕獲 (capturing) フェーズ
phase
CAPTURING_PHASE
value
1
dir
根 → 葉
capture
真
bubbles
真, 偽
name
対象 (target) フェーズ
phase
AT_TARGET
value
2
dir
葉 → 根
capture
偽
bubbles
真, 偽
name
泡立ち (bubbling) フェーズ
phase
BUBBLING_PHASE
value
3
dir
葉 → 根
capture
偽
bubbles
真

[16] 相は、 NONE → CAPTURING_PHASE → AT_TARGET → BUBBLING_PHASE → NONE の順に変化します。

[17] 影木が含まれる場合には、 CAPTURING_PHASE → AT_TARGET → BUBBLING_PHASE → AT_TARGET → BUBBLING_PHASE のように、何度も AT_TARGET となることがあります。

[19] CAPTURING_PHASE は根から葉の方向へと順に進んでいくのですが、 イベント対象は飛ばしていくことになります。

[18] AT_TARGET は、常にイベント対象のイベントリスナーの実行時 (event.target === event.currentTarget) です。 影木が含まれる場合には、影ホストでも AT_TARGET となります。 イベント対象では CAPTURING_PHASE や BUBBLING_PHASE となることはありません。

[13] イベントオブジェクトは、相 (phase) を持ちます >>12。 その値は、 >>11 の4つの値のいずれかです。既定値は NONE です。

[14] Event インターフェイスの eventPhase IDL属性の取得器は、文脈オブジェクトの相を返さなければなりません >>12。

[15] Event インターフェイスの NONE, CAPTURING_PHASE, AT_TARGET, BUBBLING_PHASE 各定数は、それぞれの値 (>>11) を返さなければなりません >>12。

処理

[10] dispatch 参照。

EventListenerOptions 辞書 capture メンバー

[7] 辞書 EventListenerOptions のメンバー capture は、イベントリスナーの捕獲の値を boolean >>6 で指定します。

歴史

W3C DOM

[8] capture: イベントがその対象によって取り扱われる前に、その対象の祖先によって取り扱うことが出来る処理。 Capturing。 (Document Object Model Events <http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-overview-terminology>)

ev:listener 要素 phase 属性, ev:phase 属性 (XML 事象)

[1] XML事象の phase 属性は、 事象聴取器が活性化される段階を指定します。

仕様書: <http://www.w3.org/TR/xml-events#attr-listener-phase>

属性値:

capture
捕獲段階 (根要素から対象要素に向かって下っていく段階) で活性化されます。
default (既定値)
泡立段階または対象段階 (対象要素と、対象要素から先祖要素に向かって上っていく段階) で活性化されます。

すべての事象が泡立つわけではありませんから注意が必要です。

XBL2

[3] XML Binding Language (XBL) 2.0 ( ( 版)) <http://www.w3.org/TR/2007/CR-xbl-20070316/#the-default>

[2] XML Binding Language (XBL) 2.0 ( ( 版)) <http://www.w3.org/TR/2007/CR-xbl-20070316/#phase>

DOM イベント

[5] IRC logs: freenode / #whatwg / 20140410 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20140410>

[4] IRC logs: freenode / #whatwg / 20140410 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20140410>

[9] Add EventListenerOptions and passive event listener feature · whatwg/dom@253a21b ( 版) <https://github.com/whatwg/dom/commit/253a21b8e78e37447c47983916a7cf39c4f6a3c5>

[20] Shadow: define event retargeting for shadow trees (annevk著, ) <https://github.com/whatwg/dom/commit/ed94c9f2f1850b2e6a9b357c6870186859da4c2d>

[21] Editorial: major cleanup around firing and dispatching events (annevk著, ) <https://github.com/whatwg/html/commit/8ffbd146d4709057e45dd6cfc81e7a70897050c5>