Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでのイベントバブリングとキャプチャとは何ですか?


イベントバブリングは、1つの要素が2番目の要素内にネストされ、両方の要素が同じイベント(クリックなど)のリスナーを登録したときにイベントハンドラーが呼び出される順序です。バブリングでは、イベントは最初に最も内側の要素によってキャプチャおよび処理され、次に外側の要素に伝播されます。

キャプチャを使用すると、イベントは最初に最も外側の要素によってキャプチャされ、内側の要素に伝播されます。

両方の例を見てみましょう。

次の両方の例について、次のHTMLを作成します-

<div id='outer' style='background-color:red;display:inline-block;padding:50px;'>
   Outer Div
<div id='inner' style='background-color:yellow;display:inline-block;padding:50px;'>
   Inner Div
</div>
</div>

1。イベントバブリング

document.querySelector('#outer').addEventListener('click', e => {
   console.log('Outer div is clicked');
}, false);
document.querySelector('#inner').addEventListener('click', e => {
   console.log('Inner div is clicked');
}, false);

上記のコードを実行して内部divをクリックすると、ログが取得されます-

Inner div is clicked

Outer div is clicked

2。イベントのキャプチャ

document.querySelector('#outer').addEventListener('click', e => {
   console.log('Outer div is clicked');
}, true);
document.querySelector('#inner').addEventListener('click', e => {
   console.log('Inner div is clicked');
}, true);

上記のコードを実行して内部divをクリックすると、ログが取得されます-

Outer div is clicked

Inner div is clicked

  1. JavaScriptのイベントバブリングとは何ですか?

    イベントバブリング イベントバブリングプロセスは、イベントをトリガーした要素から始まり、階層内の含まれている要素までバブリングします。 デブリーフィング 次の例では、3つの要素 div があります 、スパン およびボタン 。 階層を維持するには、そのボタンが必要です。 スパン内にネストされる要素 要素、およびスパン div内にネストされる要素 エレメント。 すべての要素にクリックイベントを割り当てて、要素がクリックされたときにアラートボックスが開き、例に示すように、尊重されたメッセージが表示されるようにします。 プログラムを実行すると、以下の画像が画面に表示されます。 要素がクリ

  2. JavaScriptでのイベントバブリングとイベントキャプチャ?

    イベントバブリング −要素でイベントが発生するたびに、イベントハンドラーは最初にその要素で実行され、次にその親で実行され、最後に他の祖先まで実行されます。 イベントキャプチャ −これはイベントのバブリングの逆であり、ここでイベントは親要素から始まり、次にその子要素に始まります。 以下は、JavaScriptでのイベントバブリングとイベントキャプチャのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <