ホームページ > 記事 > ウェブフロントエンド > イベントがバブルアップしないのはなぜですか?
イベントが場合によってはバブルアップしないのはなぜですか?
イベント バブリングとは、要素上のイベントがトリガーされると、イベントが最も内側の要素から始まり、最も外側の要素に渡されるまで上向きに渡されることを意味します。ただし、場合によっては、イベントをバブルさせることができません。つまり、イベントはトリガーされた要素上でのみ処理され、他の要素には渡されません。この記事では、いくつかの一般的な状況を紹介し、イベントがバブルに失敗する理由について説明し、具体的なコード例を示します。
document.addEventListener('click', function(event) { console.log('捕获阶段'); }, true); document.addEventListener('click', function(event) { console.log('冒泡阶段'); }, false);
上記のコードでは、ページ上の任意の場所をクリックすると、イベントはキャプチャ フェーズとバブリング フェーズの両方で処理されます。 。 3 番目のパラメーターが true に設定されている場合、イベントはキャプチャ フェーズでのみ処理され、バブルされないため、イベントのバブルが失敗します。
document.getElementById('inner').addEventListener('click', function(event) { console.log('内层元素点击事件'); event.stopPropagation(); }); document.getElementById('outer').addEventListener('click', function(event) { console.log('外层元素点击事件'); });
上記のコードでは、内側の要素がクリックされると、イベントは要素上で処理されますが、外側の要素には渡されません。その結果、イベントがバブルアップすることはできません。
document.addEventListener('contextmenu', function(event) { console.log('右键点击事件'); }); document.addEventListener('click', function(event) { console.log('点击事件'); });
上記のコードでは、ページを右クリックすると、右クリック イベントのみがトリガーされます。クリック イベントはトリガーされません。
概要:
イベントがバブルできない状況には、イベント キャプチャ モードの使用、stopPropagation メソッドの呼び出し、およびマウスの右クリック イベントが含まれます。これらの状況を理解することは、開発中のイベント配信メカニズムをより深く理解し、予期しない問題を回避するのに役立ちます。上記の内容が読者の皆様にインスピレーションを与えることができれば幸いです。
以上がイベントがバブルアップしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。