JavaScript-те универсалды оқиға делегациясы

Алдыңғы сабақта келтірілген код жұмыс істейді, бірақ, кемшіліктерсіз емес. Кел, осы кемшіліктерді талдап, дәлірек шешім жазайық.

Біздің кодтың кемшілігі li-нің ішінде кірістірілген тегтер болған жағдайда байқалады. Біздің жағдайда бұл i тегтері болсын:

html<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 әдісімен шешуге болады:

javascriptlist.addEventListener('click', function(event) {
  let li = event.target.closest('li');
  
  if (li) {
    li.innerHTML = li.innerHTML + '!';
  }
});
Задание 1

Келтірілген шешімді қайталаңыз.