⊗jsPmOEUED 432 of 505 menu

JavaScriptにおける汎用イベントデリゲーション

前のレッスンで示したコードは機能しますが、欠点がないわけではありません。 これらの欠点を分析し、より汎用的な解決策を書いてみましょう。

私たちのコードの欠点は、li タグ内に何かネストされた タグがある場合に明らかになります。 今回のケースでは、i タグがあるとしましょう:

<ul> <li>item <i>italic</i> item</li> <li>item <i>italic</i> item</li> <li>item <i>italic</i> item</li> <li>item <i>italic</i> item</li> <li>item <i>italic</i> item</li> </ul>

この場合、i タグをクリックすると、 感嘆符が li タグの末尾ではなく、i タグの末尾 に追加されてしまいます。これは、event.target に取得されるのは、まさにイベントが発生したタグだからです。

この問題は、closest メソッドを使用して解決できます:

list.addEventListener('click', function(event) { let li = event.target.closest('li'); if (li) { li.innerHTML = li.innerHTML + '!'; } });

上記の解決策を実装してみてください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否