JavaScript-dä Ýokary Derejelik Waka Delegetirlenmesi
Öňki sapakda görkezilen kod işjeň, ýöne kemçiliksiz däl. Geliň, şu kemçilikleri gözden geçirip, has ýokary derejeli çözgüt ýazalyň.
Kodymyzyň kemçiligi, li tegi içinde
içine goýlan başga tegender bolanda ýüze çykar.
Bizim ýagdaýymyzda, bu tegender i tegi bolsun:
<ul>
<li>element <i>kursiw</i> element</li>
<li>element <i>kursiw</i> element</li>
<li>element <i>kursiw</i> element</li>
<li>element <i>kursiw</i> element</li>
<li>element <i>kursiw</i> element</li>
</ul>
Bu ýagdaýda, i tegine basmak,
li teginde däl-de, i teginiň
ahyrynda ünlem belgisini goşmaga getirer -
sebäbi event.target-a dogrudan-da wakanyň
ýüze çykan tegi düşýär.
Bu meseläni closest metody bilen çözmek bolýar:
list.addEventListener('click', function(event) {
let li = event.target.closest('li');
if (li) {
li.innerHTML = li.innerHTML + '!';
}
});
Görkezilen çözgüdi gaýtalaň.