ホームページ > 記事 > ウェブフロントエンド > DOMイベントフローの詳しい解説_基礎知識
1. バブルイベント
ブラウザのイベント モデルは、キャプチャ イベントとバブリング イベントの 2 つのタイプに分類されます。 IE はイベントのキャプチャをサポートしていないため、以下では主にバブリング イベントを説明として使用します。
(バブリングと呼ばれます) バブリングとは、最も具体的なイベントから最も具体性の低いイベントまで、イベントが 1 つずつトリガーされることを意味します。
<スクリプトタイプ="text/javascript">
関数 add(sText) {
var ulo = document.getElementById("display");
ulo.innerHTML = sText;
}
ところで、ここでイベントのキャプチャについて思い出させてください。その順序はバブリングイベントとはまったく逆です。
2. イベント監視イベントには応答する関数が必要です。この種の関数は通常、イベント ハンドラーと呼ばれ、イベントが発生するかどうかをリアルタイムで監視します。イベント リスニング機能はブラウザーごとに大きく異なります。
i. onclick メソッドの使用など、ほとんどすべてのタグがこのメソッドをサポートしています。そしてブラウザの互換性も非常に高いです
行動の説明、イベントの分離。
一般的に、監視には次の方法が使用されます
上で紹介した 2 つのメソッドは非常に便利で、いくつかの小さな関数を作成および処理するときに Everbright 開発者に愛用されています。ただし、同じイベントの場合。 p マークの onclick 関数など、追加できる関数は 1 つだけです。そのため、IE には独自のメソッドが用意されています。
ii.IEでのリスニング方法
初期の IE ブラウザでは、各要素に時間監視を処理する 2 つのメソッドがあります。
それぞれ、attachEvent() と detachEnevt() です。
関数名からも分かるように、attachEnevt()は要素にイベント処理を追加する関数であり、detachEvent()は要素のlisten関数を削除する関数です。構文は次のとおりです:
[オブジェクト].attachEvent("enevt_handler","fnHandler");
[オブジェクト].detachEvent("enevt_handler","fnHandler");
このうち enevt_handler はよく使われる onclick、onload、onmouseover などを表します。
fnHandler は、リスニング関数の名前です。
前のセクションのイベントでは、リッスン関数を追加する代わりに、attachEvent() メソッドを使用して、一度クリックしたときにリッスン関数を削除し、次のクリック後にリスニング関数が実行されないようにすることができます。 。
}
iii. 複数のリスニング イベントを追加します (つまり)
コードをコピーします
3. 標準 DOM イベント監視
ie の 2 つのメソッドと比較すると、標準 DOM も 2 つのメソッドを使用してそれぞれリスニング関数を追加および削除します。それはaddEventListener()とremoveEventListener()
コードをコピーします
コードをコピー