⊗jsPmOEUED 432 of 505 menu

Իվենթների ունիվերսալ դելեգացումը JavaScript-ում

Նախորդ դասում բերված կոդը աշխատող է, սակայն, առանց թերությունների չէ։ Եկեք վերլուծենք այդ թերությունները եւ գրենք ավելի ունիվերսալ լուծում։

Մեր կոդի թերությունը կբացահայտվի այն դեպքում, երբ li-ի ներսում լինեն որոշ nested տեգեր։ Մեր դեպքում թող դրանք լինեն 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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել