導入例示する この記事では、JavaScript でのイベントの委任 (delegate) の使用方法を例を使って紹介します。 イベント委任の概要 イベント委任 (イベント プロキシとも呼ばれる) は、JavaScript でイベントをバインドするための一般的な手法です。これは、本来は子要素にバインドする必要がある応答イベントを親要素または外部要素に委任し、外部要素がイベント監視の責任を引き受けられるようにすることです。 イベント委任の原則は、DOM 要素のイベント バブリングです。 イベント委任の利点 1. メモリを節約し、イベントバインディングを減らす 元々、イベントはすべての子要素にバインドする必要がありましたが、イベント委任を使用した後は、必要なイベント バインディングは 1 つだけになります。 2. イベントは動的にバインドでき、新しく追加されたサブオブジェクトイベントはバインドされたイベントによって処理できます。 新しく追加された子オブジェクトによって生成されたイベントは、最終的に親要素にバブルアップされ、処理できるようになるため、 例: イベントの委任要件: リスト要素をクリックするとコンテンツがポップアップ表示されるリスト。 記述方法1: イベント委譲イベントを外側の要素にバインドするだけです。 <!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>これはタイトルです</title> </head> <本文> <ul id="id-ul"> <li>私は最初のliです</li> <li>私は2番目のliです</li> <li>私は3番目のliです</li> </ul> <スクリプト> ul = document.getElementById('id-ul'); とします。 ul.addEventListener("クリック", 関数(ev) { アラート(ev.target.innerText); }) </スクリプト> </本文> </html> 結果 記述方法2: 各子要素はイベントにバインドされます各子要素にはイベントがバインドされています。 <!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>これはタイトルです</title> </head> <本文> <ul id="id-ul"> <li>私は最初のliです</li> <li>私は2番目のliです</li> <li>私は3番目のliです</li> </ul> <スクリプト> li = document.querySelectorAll('#id-ul li') とします。 for (let liElement of li) { liElement.addEventListener("クリック", 関数(ev) { アラート(ev.target.innerText); }); } </スクリプト> </本文> </html> 結果 例: 新しい要素を追加する要件: 「生成ボタン」をクリックするたびに、サブリスト要素が生成されます。その後、リスト要素をクリックするたびに、その内容がポップアップ表示されます。 記述方法1: イベント委譲<!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>これはタイトルです</title> </head> <本文> <ul id="id-ul"> <li>1</li> <li>2</li> </ul> <button id="btn">クリック</button> <スクリプト> num = 3 とします。 eUl = document.querySelector("#id-ul"); eButton を document.querySelector("#btn") とします。 eButton.addEventListener("クリック", 関数() { newLi = document.createElement("li"); eUl.appendChild(newLi); 新しいLi.innerText = num++; }) eUl.addEventListener("クリック",関数(イベント) { アラート(event.target.innerText); }) </スクリプト> </本文> </html> 結果 ご覧のとおり、既存の要素と新しく作成された要素の両方のイベントが処理されます。 記述方法2: 各子要素はイベントにバインドされます<!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>これはタイトルです</title> </head> <本文> <ul id="id-ul"> <li>1</li> <li>2</li> </ul> <button id="btn">クリック</button> <スクリプト> num = 3 とします。 eUl = document.querySelector("#id-ul"); eButton を document.querySelector("#btn") とします。 eLi = document.querySelectorAll("#id-ul li"); eButton.addEventListener("クリック", 関数() { newLi = document.createElement("li"); eUl.appendChild(newLi); 新しいLi.innerText = num++; }) (eLiのeLi要素とする) { eLiElement.addEventListener("クリック",関数(イベント) { アラート(event.target.innerText); }) } </スクリプト> </本文> </html> 結果 元の要素のクリック イベントは処理されますが、新しく追加された要素は処理されないことがわかります。 これで、JavaScript イベント委譲の詳細な使用例に関するこの記事は終了です。JavaScript イベント委譲に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
脆弱性の詳細VSFTP は、GPL に基づいてリリースされた Unix ライクなシステムで使用される...
CentOS 7 では、次のようなコマンドを使用してホスト ポートをコンテナー ポートにマッピングす...
目次導入ステップ1ステップ2: アイデアで動的Webプロジェクトを作成するステップ3: Tomcat...
1.MySqlをダウンロードしてインストールする公式ウェブサイトからMySqlデータベースをダウンロ...
目次1. Node.jsとVue 2. ローカル開発環境でフロントエンドのVueプロジェクトを実行す...
目次1. 補助機能2. 例1. mapState と mapGetters 2. mapMutati...
JS には、文字列をインターセプトするための 3 つのメソッド、 slice() 、 substri...
目次スケルトンスクリーンとはアプレットでスケルトン画面を生成する方法導入方法表示と非表示ユーザーエク...
ブラウザはTIF形式の画像を表示しますコードをコピーコードは次のとおりです。 <html>...
現在、多くの人がインターネット上で生活しており、インターネットで情報を検索することは日常的な作業とな...
計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...
目次1.kvmの展開1.1 kvmのインストール1.2 kvm Web管理インターフェースのインスト...
MySQLの左結合が無効であり、その使用方法今日SQLを書いていたとき、左結合を使用すると左のテーブ...
1. はじめに数日前、開発仲間から、フィールドを同じ値に更新すると binlog が記録されるかどう...
目次ヘッドレスブラウザとは何ですか?なぜ「ヘッドレス」ブラウザと呼ばれるのでしょうか?ヘッドレスブラ...