Задать вопрос
@mirikkingg

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

Такой вопрос, есть ивент, который добавляет блоки в массив, далее на массиве слушается click на один (должен) из элементов, но каждый раз когда вызывается click он срабатывает столько раз - сколько было создано блоков в родителе (если кликнуть на 0 элемент - выведется лишь раз, на 1 - два раза, на 2 - три раза..).

6290a30d36bc6952584544.png

Так выглядит лог без клика.
6290a3fbcb076100134948.png

const checkBoxes = () => { 
    let trackBoxes = document.querySelectorAll('.chartsCard'); // Карточки в массиве
    trackBoxes.forEach(item => {
        item.addEventListener('click', () => {
            const trackIndex = event.currentTarget // Проверка на какой блок нажали
            console.log(trackIndex) //
        })
    })
}

let trackSection = document.querySelector('.charts') // Мэйн блок в который дописываются блоки
trackSection.addEventListener('DOMNodeInserted', checkBoxes); // Отслеживаю добавление блоков
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Надо либо навешивать обработчик на конкретный элемент при его создании (а не на все элементы каждый раз), либо вешать его на родительский статичный элемент и использовать всплытие.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы