ホームページ  >  記事  >  ウェブフロントエンド  >  どの JS イベントが上向きに伝播されませんか?

どの JS イベントが上向きに伝播されませんか?

WBOY
WBOYオリジナル
2024-02-19 08:17:23832ブラウズ

どの JS イベントが上向きに伝播されませんか?

バブルしない JS イベントはどれですか?

JavaScript におけるイベント バブリングとは、要素がイベントをトリガーすると、イベントがドキュメント ルート ノードにバブリングするまで、段階的に上位レベルの要素にバブリングされることを意味します。イベント ハンドラーは、バブルアップされた順序で実行されます。

ただし、すべてのイベントがバブルアップするわけではありません。一部のイベントは、トリガーされた後、上位レベルの要素にバブリングせずに、ターゲット要素のイベント ハンドラーのみを実行します。以下に、バブルしない一般的なイベントをいくつか示します。

  1. focus イベントとブラー イベント: これら 2 つのイベントは、要素がフォーカスを取得したときとフォーカスを失ったときにそれぞれトリガーされます。これらは、親要素または上位レベルの要素にバブルアップしません。
  2. Change イベント: input、select、または textarea 要素の値が変更されるとトリガーされます。通常、変更イベントは親要素にバブルしませんが、プロキシ イベント ハンドラーが使用されている場合 (つまり、イベント委任を通じて)、プロキシ要素にバブルする可能性があります。
  3. submit イベント: form 要素のフォームが送信されるとトリガーされます。 submit イベントは親要素にバブルアップしませんが、form 要素にイベント ハンドラーをバインドすることで取得できます。
  4. フォーカスイベントとフォーカスアウトイベント: これら 2 つのイベントはフォーカスとブラーに似ていますが、バブルする可能性があります。 focusin は要素がフォーカスを取得したときにトリガーされ、focusout は要素がフォーカスを失ったときにトリガーされます。イベント ハンドラーの useCapture パラメーターを true に設定することで、バブリングをキャプチャできます。

上記のイベントは親要素や上位レベルの要素にはバブルしませんが、ウィンドウ オブジェクトにはバブルすることに注意してください。したがって、ウィンドウ オブジェクトをリッスンすることでこれらのイベントをキャッチできます。

さらに、イベントが通常のバブリング順序で伝播されない特殊なケースがいくつかあります。たとえば、stopPropagation() メソッドを使用してイベントのバブリングを防止すると、イベントはさらに上位レベルの要素にバブリングされなくなります。

概要: JavaScript では、フォーカス、ブラー、変更、送信イベントなど、一部のイベントは親要素または上位レベルの要素にバブルアップされません。これらの非バブリング イベントを理解することは、イベントを正しく処理するために非常に重要であり、ページ内のインタラクティブな動作をより適切に制御および管理するのに役立ちます。

以上がどの JS イベントが上向きに伝播されませんか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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