⊗jsPmOEUED 432 of 505 menu

Uniwersalne delegowanie zdarzeń w JavaScript

Kod przedstawiony w poprzedniej lekcji jest działający, jednak nie jest pozbawiony wad. Przeanalizujmy te wady i napiszmy bardziej uniwersalne rozwiązanie.

Wada naszego kodu ujawni się w przypadku, gdy wewnątrz li znajdują się zagnieżdżone znaczniki. W naszym przypadku niech będą to znaczniki 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>

W tym przypadku kliknięcie na znacznik i spowoduje dodanie wykrzyknika na końcu znacznika i, a nie znacznika li, jak byśmy chcieli - ponieważ do event.target trafia dokładnie ten znacznik, w którym zdarzenie wystąpiło.

Problem można rozwiązać za pomocą metody closest:

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

Powtórz przedstawione rozwiązanie.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć