@MRcracker

Как отменить удаление класса?

Есть кнопка по клику на которую появляется и исчезает блок. Происходит это за счет переключения класса. Если блок появился, то его можно так же скрыть по клику на экран.

На странице есть еще список. Скажите, пожалуйста, как сделать так, чтобы если блок был на экране и посетитель щелкал на элементы списка, то блок не пропадал?

Код
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const list = document.querySelector('.list');
const menu = document.querySelector('.menu');
const btn = document.querySelector('.btn');
const className = 'menu-hidden';

document.addEventListener('click', ({ target: t }) => {
  if (!list.contains(t)) {
    menu.classList.toggle(className, t !== btn || !menu.classList.contains(className));
  }
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alekcena
В попытках обрести навыки и умения
Не писать лишнего
const menu = document.querySelector('.menu');
const toggler = document.querySelector('.btn');
if (menu) {
  toggler.addEventListener('click', () => {
    menu.classList.toggle('menu-hidden');
  });
}
Ответ написан
Ваш ответ на вопрос

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

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