ホームページ ウェブフロントエンド jsチュートリアル バブリングイベントのサポートなし: 制限と範囲

バブリングイベントのサポートなし: 制限と範囲

Jan 13, 2024 pm 12:51 PM
泡立つイベント 制限 バブリングはサポートされていません

バブリングイベントのサポートなし: 制限と範囲

バブリング イベントとは、DOM ツリー内の子要素から親要素へ段階的にトリガーされるイベント配信メソッドを指します。ほとんどの場合、バブリング イベントは非常に柔軟でスケーラブルですが、イベントがバブリングをサポートしない特殊なケースがいくつかあります。

1.バブリングをサポートしていないイベントはどれですか?
ほとんどのイベントはバブリングをサポートしていますが、バブリングをサポートしていないイベントもあります。バブリングをサポートしない一般的なイベントは次のとおりです。

  1. イベントのフォーカスとぼかし
  2. イベントのロードとアンロード
  3. イベントの入力、選択、および変更
  4. サブミットおよびリセットイベント
  5. スクロールイベント
  6. mouseenterおよびmouseleaveイベント
  7. contextmenuイベント

2.イベントの例
Forバブリング イベントの制限をよりよく理解するために、バブリングをサポートしていない各イベントの具体的なコード例を以下に示します。

  1. フォーカス イベントとブラー イベント
    フォーカス イベントとブラー イベントは次のとおりです。要素がフォーカスを取得または失うことを処理するために使用されるイベント。これらのイベントはバブリングをサポートしていません。つまり、子要素でフォーカス イベントやブラー イベントをトリガーしても、親要素の対応するイベントはトリガーされません。

HTML コード:

<div>
  <input type="text" id="myInput">
</div>
ログイン後にコピー

JavaScript コード:

const myInput = document.getElementById('myInput');
myInput.addEventListener('focus', function() {
  console.log('Input获得焦点');
});
const myDiv = document.querySelector('div');
myDiv.addEventListener('focus', function() {
  console.log('Div获得焦点');
});
ログイン後にコピー

結果:
テキスト ボックスにフォーカスがあると、「入力が取得されました」のみが出力されます。 「Div にフォーカスがあります」を出力する代わりに、「コンソールにフォーカスがあります」と表示されます。 focus イベントは親要素 div までバブルアップしないためです。

  1. ロード イベントとアンロード イベント
    ロード イベントとアンロード イベントは、ページまたはリソースが読み込まれた後にトリガーされるイベントです。これらのイベントはバブリングをサポートしていません。つまり、ロードまたはアンロード イベントが子要素でトリガーされても、親要素の対応するイベントはトリガーされません。

HTMLコード:

<div>
  <img  src="/static/imghw/default1.png"  data-src="image.png"  class="lazy" id="myImage" alt="バブリングイベントのサポートなし: 制限と範囲" >
</div>
ログイン後にコピー

JavaScriptコード:

const myImage = document.getElementById('myImage');
myImage.addEventListener('load', function() {
  console.log('图片加载完成');
});
const myDiv = document.querySelector('div');
myDiv.addEventListener('load', function() {
  console.log('Div加载完成');
});
ログイン後にコピー

結果:
画像読み込みが完了すると「画像読み込み完了」のみが出力されますコンソールでは、「Div ロードが完了しました」と出力されるのではなく、「」と表示されます。これは、load イベントが親要素 div までバブルアップしないためです。

  1. 入力、選択、および変更イベント
    入力、選択、および変更イベントは、フォーム要素の値の変更を処理するために使用されるイベントです。これらのイベントは、値が実際に変更された要素にのみ影響し、親要素には反映されません。

HTML コード:

<input type="text" id="myInput">
ログイン後にコピー

JavaScript コード:

const myInput = document.getElementById('myInput');
myInput.addEventListener('input', function() {
  console.log('输入框值改变');
});
const myForm = document.querySelector('form');
myForm.addEventListener('input', function() {
  console.log('表单值改变');
});
ログイン後にコピー

結果:
入力ボックスの値が変更された場合、「入力」のみが出力されますコンソールでは「フォーム値が変更されました」ではなく「ボックス値が変更されました」は出力されません。入力イベントが親要素フォームにバブルアップしないためです。

  1. 送信イベントとリセット イベント
    送信イベントとリセット イベントは、フォームが送信されリセットされたときにトリガーされるイベントです。これらのイベントはフォーム要素自体にのみ適用でき、親要素にはバブルアップされません。

HTML コード:

<form id="myForm">
  <input type="submit" value="提交">
</form>
ログイン後にコピー

JavaScript コード:

const myForm = document.getElementById('myForm');
myForm.addEventListener('submit', function(event) {
  event.preventDefault();
  console.log('表单已提交');
});
const myDiv = document.querySelector('div');
myDiv.addEventListener('submit', function() {
  console.log('Div提交');
});
ログイン後にコピー

結果:
送信ボタンをクリックすると、「フォーム送信」のみが出力されます。 「Div Submit」の代わりにコンソール「」が出力されます。 submit イベントは親要素 div までバブルアップしないためです。この例では、event.preventDefault() メソッドを通じてフォームのデフォルトの送信動作を防止していることに注意してください。

  1. scroll イベント
    scroll イベントは、スクロールが発生したときにトリガーされるイベントです。このイベントはバブリングをサポートしていません。つまり、要素をスクロールするときに、親要素のスクロール イベントはトリガーされません。

HTML コード:

<div style="height: 100px; width: 100px; overflow: auto;">
  <p>这是一段很长的文本</p>
</div>
ログイン後にコピー

JavaScript コード:

const myDiv = document.querySelector('div');
myDiv.addEventListener('scroll', function() {
  console.log('滚动');
});
ログイン後にコピー

結果:
div をスクロールすると、コンソールには「scroll」のみが出力されます、上位要素にはバブルしません。

  1. mouseenter イベントと Mouseleave イベント
    mouseenter イベントと Mouseleave イベントは、マウスが要素に出入りするときにトリガーされるイベントです。これらのイベントはバブリングをサポートしていません。つまり、マウスが要素に出入りするときに、親要素の対応するイベントはトリガーされません。

HTML コード:

<div id="myDiv" style="background-color: yellow; width: 100px; height: 100px;">
  <p>鼠标进入这个div</p>
</div>
ログイン後にコピー

JavaScript コード:

const myDiv = document.getElementById('myDiv');
myDiv.addEventListener('mouseenter', function() {
  console.log('鼠标进入div');
});
const myBody = document.querySelector('body');
myBody.addEventListener('mouseenter', function() {
  console.log('鼠标进入body');
});
ログイン後にコピー

結果:
マウスが div に入ると、「マウスが div に入る」だけが実行されます。 「マウスが本体に入りました」を出力する代わりに、「コンソールに出力されます。」

  1. contextmenu イベント
    contextmenu イベントは、マウスの右ボタンがクリックされたときにトリガーされるイベントです。このイベントはバブリングをサポートしていません。つまり、要素を右クリックしても、親要素の contextmenu イベントはトリガーされません。

HTML コード:

<div id="myDiv" style="background-color: yellow; width: 100px; height: 100px;"></div>
ログイン後にコピー

JavaScript コード:

const myDiv = document.getElementById('myDiv');
myDiv.addEventListener('contextmenu', function(event) {
  event.preventDefault();
  console.log('右键点击');
});
const myBody = document.querySelector('body');
myBody.addEventListener('contextmenu', function() {
  console.log('右键点击body');
});
ログイン後にコピー

結果:
div を右クリックすると、「右クリック」のみが行われます。 「本文を右クリック」を出力する代わりに、コンソールに出力します。この例では、event.preventDefault() メソッドを通じてデフォルトのコンテキスト メニューが表示されないようにしていることに注意してください。

3. 概要
バブル イベントは、DOM ツリー内の子要素から親要素へ段階的にトリガーされるイベント配信方法です。ほとんどのイベントはバブルをサポートしていますが、サポートしていないイベントもあります。バブルのスペシャルイベント。この記事では、読者がバブリング イベントの制限を理解できるように、特定のコード例を通じてバブリングをサポートしていないイベントを分析します。

以上がバブリングイベントのサポートなし: 制限と範囲の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

静的測位技術の長所と短所を分析する 静的測位技術の長所と短所を分析する Jan 18, 2024 am 11:16 AM

静的測位技術の利点と限界の分析 現代の科学技術の発展に伴い、測位技術は私たちの生活に欠かせないものになりました。その 1 つとして、静的測位テクノロジには独自の利点と制限があります。この記事では、静的測位技術の詳細な分析を実施して、現在の応用状況と将来の開発傾向をより深く理解します。まず、静的測位技術の利点を見てみましょう。静的測位技術は、位置決め対象の物体を観察、測定、計算することで位置情報を決定します。他の測位技術と比較して、

バブリングイベントを防ぐ一般的な方法は何ですか? バブリングイベントを防ぐ一般的な方法は何ですか? Feb 19, 2024 pm 10:25 PM

バブリングイベントを防ぐために一般的に使用されるコマンドは何ですか? Web 開発では、イベントのバブリングを処理する必要がある状況によく遭遇します。クリック イベントなどのイベントが要素でトリガーされると、その親要素も同じイベントをトリガーします。イベント配信のこの動作は、イベント バブリングと呼ばれます。場合によっては、イベントがバブルアップするのを防ぎ、イベントが現在の要素でのみ発生し、上位の要素に渡されないようにしたい場合があります。これを実現するには、バブリング イベントを防ぐいくつかの一般的なディレクティブを使用できます。イベント.ストッププロパ

バブリングイベントのサポートなし: 制限と範囲 バブリングイベントのサポートなし: 制限と範囲 Jan 13, 2024 pm 12:51 PM

バブリング イベント (BubblingEvent) は、DOM ツリー内の子要素から親要素へ段階的にトリガーされるイベント配信メソッドを指します。ほとんどの場合、バブリング イベントは非常に柔軟でスケーラブルですが、イベントがバブリングをサポートしない特殊なケースがいくつかあります。 1. バブリングをサポートしていないイベントはどれですか?ほとんどのイベントはバブリングをサポートしていますが、バブリングをサポートしていないイベントもあります。バブリングをサポートしない一般的なイベントは次のとおりです。 フォーカス イベントとブラー イベントのロードとアンロード

バブルアップできないイベントは何ですか? バブルアップできないイベントは何ですか? Nov 20, 2023 pm 03:00 PM

バブルできないイベントは次のとおりです: 1. focus イベント、2. Blur イベント、3. スクロール イベント、4. Mouseenter および MouseLeave イベント、5. Mouseover および MouseOut イベント、6. Mousemove イベント、7. keypress イベント、8. beforeunload イベント; 9. DOMContentLoaded イベント; 10. イベントの切り取り、コピー、貼り付けなど。

バブリングイベントの意味は何ですか バブリングイベントの意味は何ですか Feb 19, 2024 am 11:53 AM

バブリング イベントとは、Web 開発において、要素でイベントがトリガーされると、イベントがドキュメント ルート要素に到達するまで上位の要素に伝播することを意味します。この伝播方法は、泡が下から徐々に上昇していくようなものであるため、バブリングイベントと呼ばれます。実際の開発では、イベントを正しく処理するために、バブリング イベントがどのように機能するかを知り、理解することが非常に重要です。以下では、バブリングイベントの概念と使用法を、具体的なコード例を通して詳しく紹介します。まず、親要素と 3 つの子要素を持つ単純な HTML ページを作成します。

イベントがバブルアップしないのはなぜですか? イベントがバブルアップしないのはなぜですか? Jan 13, 2024 am 08:50 AM

場合によってはイベントが発生しないのはなぜですか?イベント バブリングとは、要素上のイベントがトリガーされると、イベントが最も内側の要素から最も外側の要素に渡されるまで上向きに伝播することを意味します。ただし、場合によっては、イベントをバブルさせることができません。つまり、イベントはトリガーされた要素上でのみ処理され、他の要素には渡されません。この記事では、いくつかの一般的な状況を紹介し、イベントがバブルに失敗する理由について説明し、具体的なコード例を示します。イベント キャプチャ パターンを使用する: イベント キャプチャは、イベント バブリングとは対照的に、イベント配信のもう 1 つの方法です。

C++ テンプレートの制限とそれを回避する方法は? C++ テンプレートの制限とそれを回避する方法は? Jun 02, 2024 pm 08:09 PM

C++ テンプレートの制限とその回避方法: コードの肥大化: テンプレートは複数の関数インスタンスを生成しますが、これはオプティマイザー、可変テンプレート パラメーター、およびコンパイル時の条件付きコンパイルによって回避できます。コンパイル時間が長い: テンプレートはコンパイル時にインスタンス化されるため、ヘッダー ファイルでテンプレート関数を定義したり、必要な場合にのみインスタンス化したり、PIMPL テクノロジを使用してテンプレート関数を定義したりする必要がなくなります。型の消去: テンプレートはコンパイル時に型情報を消去しますが、これはテンプレートの特殊化と実行時型情報 (RTTI) によって回避できます。

JavaScript の一般的なイベント バブリング メカニズムをマスターする JavaScript の一般的なイベント バブリング メカニズムをマスターする Feb 19, 2024 pm 04:43 PM

JavaScript における一般的なバブリング イベント: 一般的なイベントのバブリング特性を習得するには、特定のコード例が必要です。 はじめに: JavaScript では、イベント バブリングとは、イベントが最も深いネスト レベルを持つ要素から開始され、イベントが終了するまで外側の要素に伝播することを意味します。最も外側の親要素に伝播します。一般的なバブリング イベントを理解し、習得することは、ユーザー インタラクションやイベント処理をより適切に処理するのに役立ちます。この記事では、一般的なバブリング イベントをいくつか紹介し、読者の理解を助ける具体的なコード例を示します。 1. クリックイベント(クリック

See all articles