⊗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 ще доведе до добавяне на удивителен знак в края на тага i, а не на тага li, както бихме желали - в края на краищата в 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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне