Делегирање на настани во JavaScript
Во претходната лекција беше опишаниот проблем, кој се појавува при додавање нови елементи, и е приведено нејзиното решение. Во оваа лекција ние ќе разгледаме подобар начин да се заобиколи проблемот - делегирање на настани. Ајде да го разбереме.
Како што веќе знаете, кликање на li, ние
истовремено кликаме и на ul. Ова
е возможно благодарение на bubbling на настаните. Ние
можеме да го искористиме ова за решавање на нашата задача:
ќе го поставиме настанот не на секоја li, туку
на нивниот родител ul:
list.addEventListener('click', function() {
});
Сега во обработувачот на настанот this
ќе укажува на елементот, на кој е врзан
обработувачот, а event.target - на елементот,
во кој се случил настанот:
list.addEventListener('click', function(event) {
console.log(this); // нашиот список
console.log(event.target); // точка од списокот
});
Да направиме така што li, на која
се случило клик, на крајот да се додаде знак
за извичник:
list.addEventListener('click', function(event) {
event.target.textContent = event.target.textContent + '!';
});
Повторете го приведеното решение. Уверете се,
дека новите li исто така ќе реагираат
на клик.