Событие на динамически создаваемые элементы js

Как повесить событие на динамически создаваемые элементы в JavaScript без ошибок?


Ответы (1 шт):

Автор решения: Elmir

Использовать делегирование событий.

const someElement = document.querySelectorAll('[data-some]');

someElement.forEach((el) => {
  el.addEventListener('click', (e) => {
   const target = e.target;

   if (target && target.hasAttribute('data-some')) {
      //Сделать что-то..
   }
  });
});

В этом примере у нас есть переменная someElement который является псевдомассивом со всеми элементами у которого есть дата-атрибут data-some, мы перебираем его и на каждый элемент вешает слушатель события, в колбэк передаем объект события, в условии проверяет мы действительно попали на этот самый элемент и что у него есть такой атрибут, если условие верно делаем что-то.

→ Ссылка