JS バブリング イベントのサンプル分析: バブリング イベントを使用してインタラクティブな効果を実現する方法を習得するには、特定のコード サンプルが必要です。
インターネットの発展に伴い、JavaScript ( JS) はフロントエンド開発において重要なテクノロジーとなっています。フロントエンド開発では、インタラクティブな効果を実現するために JS バブリング イベントがよく使用されます。この記事では、具体的なコード例を通じて JS バブリング イベントの基本概念と使用法を紹介し、バブリング イベントを使用して一般的なインタラクティブな効果を実現する方法を分析します。
1. JS バブリング イベントの基本概念
HTML ドキュメントでは、要素構造は入れ子の関係であることがよくあります。要素がイベントをトリガーすると、イベントはドキュメントのルート要素に到達するまで親要素まで伝播 (バブル) されます。これが JS バブリング イベントの基本概念です。バブリング イベントには、一般的なクリック イベント、マウスの移動インおよび移動イベント、キーボード イベントなどが含まれます。
2. バブリング イベントの具体的な使用方法
<div id="container"> <div>元素1</div> <div>元素2</div> <div>元素3</div> </div>
var container = document.getElementById('container'); var elements = container.getElementsByTagName('div'); // 为每个元素绑定事件监听器 for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', function(event){ console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); }); } // 递归获取所有冒泡元素 function getBubblingElements(event) { var bubblingElements = []; var currentElement = event.target; while (currentElement !== document) { bubblingElements.push(currentElement.innerHTML); currentElement = currentElement.parentNode; } return bubblingElements; }
コードでは、最初にコンテナ要素とそのサブ要素を取得し、次にクリック イベント リスナーを各サブ要素にバインドします。子要素をクリックすると、リスナーは現在の要素とすべてのバブル要素の内容を出力します。
当前元素: 元素3 冒泡元素: [元素3, 元素2, 元素1, #container]
上記の結果は、実際にクリックされた要素は要素 3 であり、バブリング プロセスは要素 2、要素 1 を通過することを示しています。およびコンテナー要素が順に続きます (#container)。
3. バブリング イベントを使用してインタラクティブな効果を実現する
バブリング イベントの基本概念と具体的な使用法をマスターしたら、バブリング イベントを使用して一般的なインタラクティブな効果を実現できます。以下では、バブリング、イベント プロキシ、およびイベント デリゲーションのキャンセルを分析の例として取り上げます。
// 为每个元素绑定事件监听器 for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', function(event){ console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); event.stopPropagation(); // 取消事件冒泡 }); }
変更されたコードでは、イベント オブジェクトの stopPropagation メソッドが追加され、リスナーで呼び出されるこのメソッドは、イベントのバブリング配信をキャンセルできます。このようにして、div 要素をクリックすると、現在の要素とそのコンテンツのみがコンソールに出力されます。
container.addEventListener('click', function(event){ if (event.target.tagName === 'DIV') { // 只处理div元素的点击事件 console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); } });
変更したコードでは、イベント リスナーをコンテナ要素にバインドし、コードに次のように追加します。 event.targetのtagNameを判断してdiv要素がクリックされたと判断します。この方法では、コンテナに追加する div 要素の数に関係なく、必要なイベント リスナーは 1 つだけです。
container.addEventListener('click', function(event){ if (event.target.tagName === 'DIV') { // 只处理div元素的点击事件 console.log('当前元素:', event.target.innerHTML); console.log('冒泡元素:', getBubblingElements(event)); } });
変更されたコードでは、クリックのみが追加されます。コンテナー要素のイベント リスナーを調べ、event.target の tagName がリスナー コード内の div 要素であるかどうかを判断します。このようにして、コンテナに追加した div 要素の数に関係なく、それらはイベント リスナー プロキシによって処理されます。
概要:
この記事では、具体的なコード例を通じて JS バブリング イベントの基本概念と使用法を紹介し、バブリングのキャンセルなどの一般的なインタラクティブ効果を実現するバブリング イベントの使用方法を詳細に分析します。プロキシとイベントの委任。バブリング イベントの使用をマスターすると、フロントエンド開発におけるインタラクティブなエフェクトの効率が向上し、Web ユーザーに優れたユーザー エクスペリエンスを提供できます。この記事が読者の JS バブリング イベントの理解と適用に役立つことを願っています。
以上がバブリング イベントを使用してインタラクティブな効果を実現する方法を学習します: JS バブリング イベントの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。