1. イベント委任とは何ですか?イベント委任はイベント プロキシとも呼ばれます。イベントバブリングを使用して、子要素のすべてのイベントを親要素にバインドします。子要素がイベントのバブルを妨げる場合、委任は実現できません。 以下に簡単な例を示します。 たとえば、宅配業者が 100 人の学生に 100 個の荷物を配達する場合、荷物を 1 つずつ配達するには長い時間がかかります。同時に、各生徒がそれを受け取るために列に並ぶ必要があり、時間がかかります。どのようにすればよいでしょうか?この時点で、宅配業者は 100 個の速達小包をクラスの先生に託すことができ、先生はそれを事務室に置き、生徒は授業後に受け取ることができます。この方法により、宅配業者は時間を節約でき、学生にとっても荷物を受け取るのがより便利になります。このプロセスは委任イベントです。 2. イベント委任の原則各子ノードに個別イベント リスナーを設定する代わりに、イベント リスナーを親ノードに設定し、バブリング原理を使用して各子ノードの設定に影響を与えます。 具体的なプログラムでどのように実装されているか見てみましょう。 コードは次のようになります。 <本文> <ul> <li>111111</li> <li>222222</li> <li>333333</li> <li>444444</li> <li>555555</li> </ul> <スクリプト> var li = document.querySelectorAll('li'); for(var i=0;i<li.length;i++){ li[i].onclick = 関数(){ this.style.color = '緑'; } } </スクリプト> </本文> 実行結果は次のとおりです。 この方法は確かにクリック操作を実現できますが、このプロセスではクリック イベントを毎回 li に追加する必要があるため、DOM アクセスが多すぎて、ページ全体のインタラクション準備時間が長くなります。 したがって、ここではイベント委任を使用できます。つまり、ul のクリック イベントを登録し、イベント オブジェクトのターゲットを使用して、現在クリックされている li を検索します。li がクリックされると、イベントが ul にバブルされ、ul に登録されたイベントがある場合は、イベント リスナーがトリガーされます。 実装コードは次のとおりです。 <スクリプト> var ul = document.querySelector('ul'); ul.addEventListener('クリック',function(e){ e.target.style.color = 'オレンジ'; }) </スクリプト> 実行結果は次のとおりです。 正常に表示されました。 3. イベント委託の役割上記の操作により、イベント委任では DOM を 1 回だけ操作するため、プログラムのパフォーマンスが大幅に向上します。 JavaScript イベント委任の原則に関するこの記事はこれで終わりです。JavaScript イベント委任に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CSS3 で transform を使用した場合のフォントぼかしの解決方法の詳細な説明
>>: VirtualBox の仮想ディスク vdi ファイルの容量を拡張する方法 (グラフィック チュートリアル)
テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...
序文ブロガーはアイデアIDEを使用しています。アイデア公式が最近サードパーティのアクティベーションサ...
事前に言っておくNodejs はデータベースを非同期操作として読み取るため、データベースがデータを読...
目次1. 完全なSQLクエリステートメントの記述順序2. 完全なSQL文の実行順序3. select...
1. スタイルシートの先頭にコメント ブロックを追加して、スタイルシートの作成日、作成者、タグ、その...
効果 html <本文> <div class="content&quo...
要素にクラスを追加/削除することは、プロジェクト開発では非常に一般的な動作です。たとえば、Web サ...
Shell は C 言語で書かれたプログラムであり、ユーザーが Linux を使用するための橋渡しと...
この記事では、CSS で放射状グラデーションを使用して、次の図に示すクーポン スタイルの効果を実現す...
MySQL は次の 3 種類のコメントをサポートしています。 1. 行末の「#」文字から。 2. 「...
この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...
序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...
1. 問題の説明<br />JS を使用してフォームの送信メソッドを呼び出してフォームを...
1. 概要1.1 基本概念: Docker は、Go 言語をベースにしたオープンソースのアプリケーシ...
目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...