Рӯйхати умумии воқеаҳо дар 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 + '!';
}
});
Ҳалли овардашударо такрор кунед.