⊗jsPmOEUED 432 of 505 menu

Універсальнае дэлегаванне падзей у JavaScript

Прыведзены ў папярэднім ўроке код працоўны, аднак, не без недахопаў. Давайце разбярэм гэтыя недахопы і напiшам больш універсальнае рашэнне.

Недахоп нашага коду праявіцца ў тым выпадку, калі ўнутры 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
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць