イベントのバブリングとキャプチャは、HTML DOM API 内のイベントの伝播において重要な役割を果たします。それらの機能を理解するために、これら 2 つの概念の複雑さを掘り下げてみましょう。
イベント バブリングとイベント キャプチャ
別の要素内にネストされた要素でイベントが発生したとき、両方の要素がその特定のイベントのイベント ハンドラーを登録している場合、要素がイベントを受け取る順序はイベント伝播モードによって決まります。 event.
トリクル vs. バブリング
キャプチャは「トリクル」とも呼ばれ、伝播順序を覚えるのに役立つ用語です。「トリクル ダウン、バブル」 「
ブラウザのサポート
パフォーマンス考慮事項
イベント バブリングは、複雑な DOM ではイベント キャプチャに比べてパフォーマンスが若干低下する可能性があります。
使用方法
addEventListener(type) を利用します。 、リスナー、useCapture) メソッドを使用して、バブリング (デフォルト) モードまたはキャプチャ モードでイベント ハンドラーを登録します。キャプチャ モデルを使用するには、3 番目の引数を true に設定する必要があります。
Example
次の HTML 構造を考えてみましょう:
li 要素でクリック イベントが発生した場合:
追加リソース
インタラクティブデモ
次の対話型の例は、イベント伝播のキャプチャとバブリングのフェーズを示しています。
var logElement = document.getElementById('log'); function log(msg) { logElement.innerHTML = ('' msg '
'); } function capture() { log('capture: ' this.firstChild.nodeValue.trim()); } function bubble() { log('bubble: ' this.firstChild.nodeValue.trim()); } var divs = document.getElementsByTagName('div'); for (var i = 0; i強調表示された要素のいずれかをクリックすると、最初にイベント キャプチャ フェーズが発生し、次にバブリング フェーズが発生することを観察します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3