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 ファイルの容量を拡張する方法 (グラフィック チュートリアル)
MySQL 5.7.20のインストールと設定方法のグラフィックチュートリアルをあなたと共有します1...
現在、Docker には中国向けの公式ミラーがあります。詳細については、https://www.do...
コードをコピーコードは次のとおりです。 <div contenteditable="...
質問: div+css と配置を使用して角丸四角形を実現するにはどうすればよいですか?ソリューション...
flex は 2009 年のリリース以来、ほぼすべてのブラウザでサポートされています。シンプルでレス...
参照: https://www.jb51.net/article/112612.htmシステム内のJ...
serializableシリアル化(問題なし)トランザクションは順次実行する必要があります。前のトラ...
この記事では、USB ブート ディスクの作成とシステムのインストールについて説明します。システム構成...
序文var は ES5 における変数宣言方法です。var で変数を宣言するとループ変数がグローバル変...
コンテンツ属性は通常、::before および ::after 疑似要素で使用され、疑似要素のコンテ...
IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...
目次1 はじめに2 トリガーの紹介3 トリガーを作成する4 トリガーを表示5. トリガーの削除6 結...
【背景】最近勉強中に非常に恥ずかしいことに遭遇しました。MySQL のパスワードを忘れてしまい、My...
01. コンパイルオプションとカーネルコンパイルLinux カーネル (英語: linux kern...
目次1. プロセス制御2. シーケンシャルプロセス制御3. 分岐フロー制御if文1. 支店構造2. ...