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. при зажатии ЛКМ на кнопке Открывать - попап сворачивается, а если отпустить ЛКМ - снова разворачивается. Это баг или фича?