@Kardamon90

Как заставить функцию выполняться только при активном блоке?

if (list.classList.contains('active')) {
			document.addEventListener('click', (e) => {
				if (!list.contains(e.target) && !btn.contains(e.target)) {
					list.classList.remove('active');
					sublist.forEach((el) => el.classList.remove("active"));
					document.querySelectorAll('.catalog__arrow').forEach((el) => el.classList.remove("active"));
					shadow.classList.remove('active');
					btn.classList.remove('active')
				}
			})
		}


Делаю функцию для клика вне блока чтобы скрывать элементы, нужно что бы эта функция выполнялась только в случае если наши элементы уже активны, но дойти до нужного решения у меня не выходит. Когда пишу условие, что один из элементов уже имеет класс актив, то функция вообще не срабатывает, а если без проверки, то ломается другая функция Подскажите как можно решить данную задачу
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ответы на вопрос 1
NikFaraday
@NikFaraday
Student full-stack Developer
Самый просто (И примитивный) способ. При открытии блока ставьте какой-то "переключатель" типа isShowed как true (Или для IsHidden - false). Далее при клике вне блока проверяйте значение этой переменной и уже делайте какие-то действия
Ответ написан
Ваш ответ на вопрос

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

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