ホームページ ウェブフロントエンド jsチュートリアル イベントバブリングとは何ですか? jquery_jquery でイベントバブリングを防ぐ方法

イベントバブリングとは何ですか? jquery_jquery でイベントバブリングを防ぐ方法

May 16, 2016 pm 05:39 PM
jquery

(1) イベントバブリングとは
まず、イベントが発生するとき、そのイベントには必ずイベントソース、つまりイベントをトリガーしたオブジェクトがあることを理解する必要があります。何もないところから生み出すことはできません。これがイベントの発生です。

出来事が起こると、その出来事は広がり始めます。なぜそれを広めるのでしょうか?イベント ソース自体にはイベントを処理する機能がないためです。たとえば、ボタンをクリックするとクリック イベントが生成されますが、ボタン自体はこのイベントを処理できません (ナンセンスです)。イベントを処理できるコードに到達するには、イベントをボタンから伝播する必要があります。ボタンに onclick を与える この属性には関数の名前が割り当てられます。これにより、この関数がボタンのクリック イベントを処理します)。

イベントが伝播中にそれを処理できる関数を見つけた場合、この関数がイベントをキャプチャしたと言います。

そう言えば、重要な疑問が生じます。つまり、関数はどのようにしてイベントをキャプチャするのでしょうか?これにはイベントのバブリングが含まれます。

泡立ちの概念をよりよく理解するために、目の前に水の入ったコップがあると想像してみてください。このコップの水は、私たちが通常見ているものとは少し異なります。 1 つのレイヤーは 1 つまたは複数のエリアに分割され、最上位はよく知られたウィンドウ オブジェクト (ウィンドウ オブジェクト) で、次のレイヤーは複数のエリア (ドキュメント オブジェクト、履歴オブジェクトなど) に分割されます。ドキュメント オブジェクトの次のレイヤーは複数のサブオブジェクトに分割されます。

これらのオブジェクトの階層関係は、DOM 内のオブジェクト ツリーを構成します。
イベントの伝播には方向性があります。ボタンがクリックされると、生成されたイベントはボタンから上に伝播し始めます (ちょうどカップの底から上昇する泡のように、これがイベント バブリングと呼ばれる理由です)。このイベントは、特定のプロパティに値があるかどうかを常に検索します。たとえば、ボタンのクリック イベントでは、まずボタンに onclick 属性の意味のある定義があるかどうかが検索されます (つまり、属性が既存の関数または実行可能ステートメントを指している場合)。定義されている場合は、その関数またはステートメントを実行します。 ; 次に、オブジェクトが onclick も定義している場合、イベントは上方向に伝播し、ボタンの上位レベルのオブジェクト (フォーム オブジェクトやドキュメント オブジェクトなど、つまりボタンの親オブジェクトが含まれます) に到達します。属性の場合、属性の値が実行されます。

つまり、このボタンに 3 つのレイヤー (フォーム、ドキュメント、ウィンドウ) があり、これら 3 つのレイヤーすべてが onclick 属性を定義している場合、ボタンのクリック イベントが生成されると、4 (ボタンを含む)それ自体) 関数を実行するか、4 つのステートメントを実行します。
イベントのこれらの特性は、レベル 0 DOM にも当てはまります。

(2) イベントのバブリングを防止する jquery の例
1. false を返すことでデフォルトの動作をキャンセルし、イベントのバブリングを防止します。
jQuery コード:
コードをコピー コードは次のとおりです:

$(" form") .bind(
"submit",
function() {
return false;
}
);

2.PreventDefault( ) メソッドのみ デフォルトの動作をキャンセルします。
jQuery コード:
コードをコピー コードは次のとおりです:

$(" form") .bind(
"送信",
function(event){
event.preventDefault();
}
);

3. stopPropagation() メソッドを使用すると、イベントのバブリングが防止されるだけです。
jQuery コード:
コードをコピー コードは次のとおりです:

$("フォーム") .bind(
"送信",
function(event){
event.stopPropagation();
}
);

(3 ) jsイベントバブリングの検証
今日の質問は主にオブジェクト、トリガーイベント、キャプチャイベント、実行処理、バブリングというキーワードがいくつかあります。これは実際には js の実行プロセス全体です。泡立つ過程がとても面白いです。実際には、これはコップ一杯の水のようなものですが、このコップ一杯の水は層になっており、一番下が現在イベントをトリガーしているオブジェクトです。そして、上に行くにつれてスコープは大きくなり、最上位のレイヤーは間違いなくウィンドウ、最後から 2 番目のレイヤーはドキュメントになります。フローティング プロセス中に、バブルは現在到達しているレイヤーにバインドされたイベント処理メソッドがあるかどうかを判断します。必要に応じて、それに応じた処理が行われます。そうでない場合は、泡立てを続けます。最上位のウィンドウ層に到達するまで。イベントがバブルし続けるのを防ぐために、任意のレイヤーで対応する処理を実行できます。バブリングを防ぐためにイベントオブジェクトのメソッドを呼び出す方法です。 event.stopPropagation(); 以下は、js イベントのバブリングを検証するために記述された処理メソッドです。
コードをコピー コードは次のとおりです:



1 つ

2



3
>
(4) まとめ

1. イベントバブリングは、上位層で同じイベントをトリガーすることに対応します
特殊: ダブルクリックイベントに 2 つが設定されている場合、2 つをクリックすると、バブルし、ワンクリック イベント
をトリガーします (ダブルクリックにはクリックが含まれます)。
2. click イベント内で、処理したいイベントの前に e.preventDefault();
を追加すると、ステートメントが実行されなくなった後、動作がキャンセルされます (一般的な理解: return 操作と同等)。 。 3.e.stopPropagation() は、クリック イベント内にある限り、上位レベルのクリック イベントをトリガーしません。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド jQueryのリファレンスメソッドを詳しく解説:クイックスタートガイド Feb 27, 2024 pm 06:45 PM

jQuery 参照方法の詳細説明: クイック スタート ガイド jQuery は、Web サイト開発で広く使用されている人気のある JavaScript ライブラリであり、JavaScript プログラミングを簡素化し、開発者に豊富な機能を提供します。この記事では、jQuery の参照方法を詳しく紹介し、読者がすぐに使い始めるのに役立つ具体的なコード例を示します。 jQuery の導入 まず、HTML ファイルに jQuery ライブラリを導入する必要があります。 CDN リンクを通じて導入することも、ダウンロードすることもできます

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? Feb 28, 2024 pm 03:12 PM

jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常​​、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

徹底した分析: jQuery の長所と短所 徹底した分析: jQuery の長所と短所 Feb 27, 2024 pm 05:18 PM

jQuery は、フロントエンド開発で広く使用されている高速、小型、機能豊富な JavaScript ライブラリです。 2006 年のリリース以来、jQuery は多くの開発者にとって最適なツールの 1 つとなっていますが、実際のアプリケーションでは、いくつかの利点と欠点もあります。この記事では、jQuery の長所と短所を詳しく分析し、具体的なコード例で説明します。利点: 1. 簡潔な構文 jQuery の構文設計は簡潔かつ明確であるため、コードの読みやすさと記述効率が大幅に向上します。例えば、

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

jQueryで要素の高さ属性を削除するにはどうすればよいですか? jQueryで要素の高さ属性を削除するにはどうすればよいですか? Feb 28, 2024 am 08:39 AM

jQueryで要素の高さ属性を削除するにはどうすればよいですか?フロントエンド開発では、要素の高さ属性を操作する必要が生じることがよくあります。要素の高さを動的に変更する必要がある場合や、要素の高さ属性を削除する必要がある場合があります。この記事では、jQuery を使用して要素の高さ属性を削除する方法と、具体的なコード例を紹介します。 jQuery を使用して高さ属性を操作する前に、まず CSS の高さ属性を理解する必要があります。 height 属性は要素の高さを設定するために使用されます

jQuery における eq の役割と応用シナリオを理解する jQuery における eq の役割と応用シナリオを理解する Feb 28, 2024 pm 01:15 PM

jQuery は、Web ページでの DOM 操作やイベント処理を処理するために広く使用されている人気のある JavaScript ライブラリです。 jQueryではeq()メソッドを利用して指定したインデックス位置の要素を選択しますが、具体的な使い方と応用シーンは以下の通りです。 jQuery では、 eq() メソッドは、指定されたインデックス位置にある要素を選択します。インデックス位置は 0 からカウントされます。つまり、最初の要素のインデックスは 0、2 番目の要素のインデックスは 1 などとなります。 eq() メソッドの構文は次のとおりです。 $("s

jQueryを使用してテーブルに新しい行を追加する方法の紹介 jQueryを使用してテーブルに新しい行を追加する方法の紹介 Feb 29, 2024 am 08:12 AM

jQuery は、Web 開発で広く使用されている人気の JavaScript ライブラリです。 Web 開発中は、JavaScript を使用してテーブルに新しい行を動的に追加することが必要になることがよくあります。この記事では、jQuery を使用してテーブルに新しい行を追加する方法を紹介し、具体的なコード例を示します。まず、jQuery ライブラリを HTML ページに導入する必要があります。 jQuery ライブラリは、次のコードを通じてタグに導入できます。

See all articles