JavaScript-те оқиғалар өңдеушілерін оңтайландыру

Элементтерге орнатылған тым көп өңдеушілер жұмыс жадын көп жұмсап, беттің тоқтап қалуына әкеледі.

Мысалға қарайық. Бізде белгілі бір тізім бар делік:

html<ul></ul>

Бұл тізімге сілтемені айнымалыға алайық:

javascriptlet ul = document.querySelector('ul');

Енді біздің тізімді li тегтерімен толтырайық, оларға клик өңдеушісін орната отырып:

javascriptfor (let i = 1; i <= 1000; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  ul.append(li);
  
  li.addEventListener('click', function() {
    console.log(this.textContent);
  });
}

Нәтижеде бізде 1000 өңдеуші болады. Бұл өте көп. Оңтайландыру үшін біз тек бір өңдеушіні ul тегіне орнатып, делегирование пайдалана аламыз.

Мұны жасайық. Алдымен жай тізім нұсқаларын құрайық:

javascriptfor (let i = 1; i <= 1000; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  ul.append(li);
}

Енді оқиға өңдеушісін делегирование жасайық:

javascriptul.addEventListener('click', function(event) {
  let li = event.target.closest('li');
  
  if (li) {
    console.log(li.textContent);
  }
});
Задание 1

100 өлшеміндегі HTML кестесін жасаңыз 100-ға. Әрбір ұяшықты басқанда қызыл түске боялуы үшін жасаңыз.