JavaScript におけるイベントの伝播は、イベントがトリガーされた後に DOM を介してどのように流れるかを示します。 イベント バブリング と イベント キャプチャ の 2 つの主なフェーズがあります。イベント リスナーを効果的に管理するには、これらの概念を理解することが重要です。
イベントがトリガーされると、次の順序で DOM を通じて伝播します。
バブリングフェーズでは、イベントはターゲット要素から開始され、その先祖を通してバブルアップします。
<div> <pre class="brush:php;toolbar:false">document.getElementById("parent").addEventListener("click", function() { console.log("Parent clicked"); }); document.getElementById("child").addEventListener("click", function() { console.log("Child clicked"); });
ボタンをクリックしたときの出力:
Child clicked Parent clicked
イベントがさらに伝播するのを防ぐには、stopPropagation() メソッドを使用します。
document.getElementById("child").addEventListener("click", function(event) { event.stopPropagation(); console.log("Child clicked"); });
キャプチャフェーズでは、イベントは DOM ツリーのルートからターゲット要素まで移動します。
document.getElementById("parent").addEventListener( "click", function() { console.log("Parent clicked"); }, true // Enables capturing phase ); document.getElementById("child").addEventListener("click", function() { console.log("Child clicked"); });
ボタンをクリックしたときの出力:
Parent clicked Child clicked
Feature | Event Bubbling | Event Capturing |
---|---|---|
Order | From target to ancestors | From root to target |
Default Behavior | Enabled | Disabled unless specified |
Use Case | Commonly used for delegation | Less commonly used |
イベント委任は、イベントバブリングを利用して、複数の子要素のイベントを効率的に処理します。
<div> <pre class="brush:php;toolbar:false">document.getElementById("parent").addEventListener("click", function() { console.log("Parent clicked"); }); document.getElementById("child").addEventListener("click", function() { console.log("Child clicked"); });
伝播に影響を与えずに要素のデフォルトの動作を停止するには、preventDefault() メソッドを使用します。
Child clicked Parent clicked
document.getElementById("child").addEventListener("click", function(event) { event.stopPropagation(); console.log("Child clicked"); });
イベントのバブリングとキャプチャをマスターすると、イベント駆動型アプリケーションの制御が向上し、コードの効率が向上します。
こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。
以上がJavaScript でのイベントのバブリングとキャプチャをマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。