Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите добавить функцию в скрипт

Ali Express Ученик (29), на голосовании 3 года назад
Есть вот такой скрипт нужно в него добавить функцию что бы элемент пропадал при выключении одного из блоков.
wrap.addEventListener('click', function _tmp(e) {
let block = e.target.closest('.block');
if( !block ) return; // return прервет функцию, если кликнули не на нужный блок.

block.classList.add('clicked');

if( document.querySelectorAll('.block.clicked').length === 3 ) {
// .block.clicked без пробела: Все элементы, у которых есть оба класса
document.getElementById('hidden').style.display = "block";
wrap.removeEventListener('click', _tmp);
// После завершения, обработчик клика удаляется.

}
});
Голосование за лучший ответ
Ordo Seclorum Оракул (58396) 3 года назад
А что такое wrap? Это переменная? В общем, не знаю, заменил на document, т. к. в примере такого нет. Если у тебя так работает, то оставь.
Функцию добавлять не надо. Я всего лишь
1) Убрал removeEventListener, потому что событие должно считываться всегда, а не удалятся.
2) Заменил add на toggle, чтобы класс переключался.
3) Добавил условие else, чтобы блок прятался обратно.

Собственно, всё.
https://jsfiddle.net/8fo6s7at/
Похожие вопросы