JavaScriptイベントbubble_javascriptスキルの導入と応用
オブジェクトで特定のタイプのイベント (クリック onclick イベントなど) をトリガーします。オブジェクトがこのイベントのハンドラーを定義している場合、このイベントはこれを呼び出します。ハンドラー。このイベント ハンドラーが定義されていない場合、またはイベントが true を返した場合、このイベントは処理されるまで、このオブジェクトの親オブジェクトに内部から外部に伝播されます (親オブジェクトの同様のイベントはすべてアクティブ化されます)。 , または、オブジェクト階層の最上位レベル、つまりドキュメント オブジェクト (一部のブラウザーのウィンドウ) に到達します。
例: 地方裁判所に訴訟を起こしたい場合、そのような訴訟を扱う地方裁判所がない場合、地方の関連部門が、高等裁判所などへの控訴を継続するのを支援します。最終的に訴訟が処理されるために中央裁判所に行くまで。
2. イベント バブリングの役割は何ですか?
(1) イベント バブリングにより、複数の操作を一元的に処理できます (イベント ハンドラーの追加を回避するために、親要素にイベント ハンドラーを追加します)。複数の子要素に) を使用すると、オブジェクト レイヤーのさまざまなレベルでイベントをキャプチャすることもできます。
[集中処理の例]
(2) 異なるオブジェクトが同じイベントを同時にキャプチャし、独自の処理を行うために独自の排他的ハンドラーを呼び出します。たとえば、上司が命令を出し、各従業員は自分の仕事をし始めました。
【同じイベントを同時にキャプチャする例】
function outSideWork()
{
alert('私の名前は outSide、私は仕事をしていました...'); >function inSideWork()
{
alert('My name is inSide,I was working...')
}
//次のプログラムがクリック イベントを自動的にアクティブにするため一部のブラウザでは許可されていないため、灰色のボックスをクリックして、ここからコマンドの発行を開始してください。このようにして、バブリングにより、大きな黒いボックスもクリック イベントを受け取り、独自のハンドラーを呼び出します。内部にさらに多くのボックスがネストされている場合も、同じことが起こります。
/*
function BossOrder()
{
document.getElmentById('inSide').click();
}
bossOrder(); /
3. 注意すべき点
●イベントをキャプチャするには実際には 3 つの方法があり、イベント バブリングはその 1 つです。 (1) IE のイベントを内部から外部へバブリングする (内部→外部)。 (2) Netscape4.0 は、イベントを外部から内部へ (外部→内部) キャプチャします。 (3)DOMイベントの流れ、まず外側から内側へ、内側から外側へ原点に戻る(外側→内側→外側)イベントキャプチャ方法(オブジェクトがイベント処理を2回トリガーするようですが、これの効果は分かりません!
●すべての出来事がバブル化できるわけではありません。次のイベントはバブルしません: ブラー、フォーカス、ロード、アンロード。
●イベントのキャプチャ方法はブラウザごとに異なります。また、同じブラウザのバージョンによっても異なります。たとえば、Netscape 4.0 はキャプチャ イベント ソリューションを使用しており、他のほとんどのブラウザはバブリング イベント ソリューションをサポートしています。さらに、DOM イベント ストリームはテキスト ノード イベント バブリングもサポートしています。
●ブラウザやブラウザのバージョンによって、最上位に到達するためのイベントキャプチャの目標も異なります。 IE6 では、HTML はイベントのバブリングを受け取り、ほとんどのブラウザーはウィンドウ オブジェクト (ボディ→ドキュメント→ウィンドウ) へのバブリングを継続します。
●バブリングを防止しても、オブジェクトのデフォルトの動作は防止されません。たとえば、送信ボタンをクリックすると、フォーム データが送信されます。この動作では、カスタマイズされたプログラムを作成する必要はありません。
4. イベントの大量発生を防ぐ
通常、イベント トリガーのソースを明確にして、すべてを 1 つのステップで実行します。ブラウザが賢くなり、適切なイベント処理を無目的に見つけられるようにする必要はありません。プログラム、つまり、最も正確な目標がわかっています。この場合、イベントのバブリングは必要ありません。さらに、イベント バブリングを理解することで、プログラムがさらに余分なことを実行し、必然的にプログラムのオーバーヘッドが増加することがわかります。もう 1 つの重要な問題は、イベント バブリング処理によって、アクティブ化したくないイベントがアクティブ化される可能性があり、プログラムが混乱し、さらにはデバッグが不可能になる可能性があることです。これは、イベント バブリングに慣れていないプログラマにとっては厄介な問題となることがよくあります。したがって、必要に応じて、イベントが沸騰するのを防ぐ必要があります。
[起動したくないイベントの起動例]
function openWin(url)
{
window.open(url);
}
以下は私がコピーしたものですインターネット A メソッド。このメソッドを正確なターゲット オブジェクト ハンドラーの最後に配置します。このイベントがトリガーされて処理されると、イベントはバブルされなくなります。
[イベントのバブリングを防ぐ例]
コードをコピー ;script type ="text/javascript">
function showMsg(obj,e)
{
alert(obj.id)
stopBubble(e)
}
//イベントバブリング関数
関数 stopBubble(e)
{
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
スクリプト>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









イベントバブリングについて: 子要素をクリックすると親要素のイベントがトリガーされるのはなぜですか?イベントバブリングとは、入れ子になった要素構造において、子要素がイベントをトリガーすると、そのイベントがバブリングのように層ごとに親要素の層に最外層の親要素まで渡されることを意味します。このメカニズムにより、子要素のイベントが要素ツリー全体に伝播され、関連するすべての要素が順番にトリガーされます。イベントバブリングをより深く理解するために、具体的なコード例を見てみましょう。 HTML コード: <divid="parent&q"

タイトル: jQuery.val() が失敗する理由と解決策 フロントエンド開発では DOM 要素の操作に jQuery がよく使われますが、フォーム要素の値の取得や設定には .val() メソッドが広く使われています。ただし、.val() メソッドが失敗し、フォーム要素の値を正しく取得または設定できない状況が発生することがあります。この記事では、.val() エラーの原因を調査し、対応する解決策を提供し、具体的なコード例を添付します。 1.原因分析.val()メソッド

イベントのバブリングが 2 回トリガーされるのはなぜですか?イベント バブリング (イベント バブリング) とは、DOM において、要素がイベント (クリック イベントなど) をトリガーすると、イベントがその要素から親要素にバブルアップし、最後に最上位のドキュメント オブジェクトにバブルアップすることを意味します。イベント バブリングは DOM イベント モデルの一部であり、これにより開発者はイベント リスナーを親要素にバインドできるため、子要素がイベントをトリガーすると、バブリング メカニズムを通じてイベントをキャプチャして処理できます。ただし、開発者は、バブルして 2 回トリガーされるイベントに遭遇することがあります。

JavaScript のクリック イベントは、イベント バブリング メカニズムのため、繰り返し実行できません。この問題を解決するには、次の措置を講じることができます。 イベント キャプチャを使用する: イベントがバブルアップする前に起動するイベント リスナーを指定します。イベントの引き継ぎ: イベントのバブリングを停止するには、event.stopPropagation() を使用します。タイマーを使用します。しばらくしてからイベント リスナーを再度トリガーします。

Vue.js イベント修飾子は、次のような特定の動作を追加するために使用されます。 デフォルト動作の防止 (.prevent) イベント バブリングの停止 (.stop) ワンタイム イベント (.once) イベントのキャプチャ (.capture) パッシブ イベント リスニング (.passive) アダプティブ修飾子 (.self)キー修飾子 (.key)

イベントのバブリングが 2 回連続して発生するのはなぜですか?イベント バブリングは Web 開発における重要な概念であり、ネストされた HTML 要素でイベントがトリガーされると、イベントが最も内側の要素から最も外側の要素までバブルアップすることを意味します。このプロセスは時々混乱を引き起こす可能性があり、よくある問題の 1 つは、イベントのバブリングが 2 回続けて発生することです。イベント バブリングが 2 回連続して発生する理由をよりよく理解するために、まずコード例を見てみましょう。

JS イベントでバブルが発生しない状況にはどのようなものがありますか?イベントバブリング(Event Bubble)とは、要素上でイベントが発生した後、最も内側の要素から最外側の要素に向かってDOMツリーに沿って上方向にイベントが送信されることを意味し、この送信方法をイベントバブリングと呼びます。ただし、すべてのイベントがバブル化できるわけではなく、イベントがバブル化しない特殊なケースもいくつかあります。この記事では、JavaScript でイベントがバブルアップしない状況を紹介します。 1. stopPropagati を使用する

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