godsplane
@godsplane

Как избавиться от множественного повторения forEach?

https://codepen.io/poylar/pen/GRrqeJV?editors=1111

Пытался сделать попап на классе, вопрос в заголовке.
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
@lolzqq
HTML,CSS,JS,PHP
godsplane, на своём опыте столкнулся с тем, что назначать, к примеру прослушиватели события click() на 250 элементов при загрузке страницы - это подвешивать её на 10-15 секунд в небытие
Подвешивайте событие на <body>, а в обработчик передаёте нажатый элемент, распознаёте его, и, если был нажат нужный элемент - то делаете что-то дальше - фактически вешается один прослушиватель, никаких подвисонов, лагов и forEach для этого.

Код, типа такого:
document.querySelector('body').addEventListener('click', function(e) {
   // e.target кликабельный элемент
   // определяем, необходимый ли это эелемент
   if(e.target && (e.target.className.search('needed-element')!== -1){
      // тут работаем дальше с e.target или чем хотите
   }
}


P.S. при зажатии ЛКМ на кнопке Открывать - попап сворачивается, а если отпустить ЛКМ - снова разворачивается. Это баг или фича?
Ответ написан
Ваш ответ на вопрос

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

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