JavaScript - ブラウザはイベントが発生したことをどのようにして知るのでしょうか?
滿天的星座
滿天的星座 2017-06-14 10:51:11
0
6
740

最近、私はイベントのキャプチャとバブリングに関連する問題を詳しく研究しています。
私はこのように理解していますが、それが正しいかどうかはわかりません。見てください。

イベント伝播メカニズムは、キャプチャ ステージ、ターゲット ステージに到達、およびバブリング ステージの 3 つのステージに分かれています。この伝播メカニズムの目的は、イベントが発生するかどうか、どのような種類のイベントが発生するか、どこで発生するかを監視することだと思います。いわゆるイベントキャプチャとは、ブラウザがイベントが発生したかどうかを調べることであり、イベント発生後の処理時間は、イベント処理関数とaddEventListener()の最後のパラメータを登録することで実現されます。

しかし、この考えに従うと、このような問題が発生します。

たとえば、次のようなコードがあります

リーリー

キャプチャ メソッドを使用してイベントを処理し、イベントがイベント処理関数内で伝播し続けるのを防ぎます。これは当然のことのように思えますが、私の質問は、イベントの伝播が停止した場合、ブラウザーはイベントが発生した場所をどのようにして知るのでしょうか?イベントが発生したことをどのようにして知るのでしょうか?イベントが発生したことを認識していない場合、対応するイベント ハンドラーをどのように実行できるでしょうか?

滿天的星座
滿天的星座

全員に返信(6)
给我你的怀抱

あなたの矛盾は、キャプチャフェーズについての誤った理解が原因です。名前を気にする必要はありません。キャプチャとバブリングは同じレベルにあり、一方は外側から内側に、もう一方は内側から外側に働きます。したがって、イベント割り込みは伝播前ではなく、伝播プロセス中に中断されます。

いいねを押す +0
大家讲道理

入手方法について話している場合。 答えは JavaScript イベント ループにあると思います

リンク: https://developer.mozilla.org...

いいねを押す +0
仅有的幸福

コードはブラウザーによって実行され、イベントはブラウザーによって検出され、ブラウザーは指定したイベントの実行を支援します。

それでは、ブラウザはどのようにしてそれを認識するのでしょうか?

いいねを押す +0
世界只因有你

これは、JavaScript がディレクティブ言語であるためです。つまり、作成するすべての JavaScript ステートメントは、ブラウザーに何かを行うよう通知する命令です。たとえば、最も単純な document.getElementById() は、実際には JavaScript 自体ではなく、関連する DOM を取得するようにブラウザーに通知します。イベント処理についても同様です。

いいねを押す +0
女神的闺蜜爱上我

クリックして実行disableClickHandlerし、イベントの拡散を防ぎます...

いいねを押す +0
黄舟

イベントの拡散が止まった場合、ブラウザはどのようにしてイベントが発生した場所を知るのでしょうか?

知りたくないのです。

イベントが発生したことはどのようにしてわかるのでしょうか?

それも分かりません。

イベントが発生したことを認識していない場合、対応するイベント ハンドラーをどのように実行できるでしょうか?

怠惰だと言いました。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート