RatiboR1978
@RatiboR1978

Как остановить выполнение функции после алерта во всех элементах?

Доброе время суток! Вот код: https://codepen.io/RatiboR1978/pen/LzEWLj не могу сообразить как после алерта остановить выполнение кликов на всех элементах, помогите.
  • Вопрос задан
  • 296 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Можно вынести создание обработчика клика из цикла:

const elems = document.querySelectorAll('div');

function handler() {
  alert(123);
  elems.forEach(n => n.removeEventListener('click', handler));
}

elems.forEach(n => n.addEventListener('click', handler));

Или применить делегирование:

const elems = [...document.querySelectorAll('div')];

document.addEventListener('click', function handler(e) {
  if (elems.some(n => n.contains(e.target))) {
    alert(123);
    document.removeEventListener('click', handler);
  }
});
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы