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 ファイルの容量を拡張する方法 (グラフィック チュートリアル)
1. スクリプトを動的に読み込むウェブサイトの需要が高まるにつれて、スクリプトの需要も徐々に増加しま...
今回は、Google Chrome のタブバーのような、特殊な丸い角を持つナビゲーション バーのレイ...
目次2. カンマ演算子3. JavaScript Null 結合演算子 (??) 4. JavaSc...
目次1. 共通機能分類1.1 単一行関数: 1.2 グループ化機能: 2. 単一行関数3. 数学関数...
基本的な概念: Macvlanの動作原理: Macvlan は、Linux カーネルでサポートされて...
1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...
目次Vueカスタムディレクティブカスタムディレクティブフック機能出力関連属性アプリケーション例要約す...
1. 単一行オーバーフロー1. 1 行がオーバーフローした場合、超過部分は表示されます...または、...
目次1. 概要1.1 プロトタイプとは何ですか? 1.2 プロトタイプを入手する2. プロトタイプの...
0. 新しい操作: mkdir abc #新しいフォルダを作成 touch abc.sh #新しいフ...
1. ブロックレベル要素: 独立して存在できる能力を指します。通常、ブロックレベル要素は改行によって...
独自のデモを作成するときに、display:flex を使用して垂直方向の中央揃えを実現したいと思い...
1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...
免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...
Excel は、データ分析に最もよく使用されるツールです。この記事では、MySQL と Excel ...