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

На сайте есть мобильное меню, при клике на элемент добавляем класс .menu-active чтобы меню стало видимым.
Как закрывать меню по клику за пределами меню?

$(function(){
    $('.mobile-nav-toggle').click(function(){
        $('.mobile-menu').toggleClass('menu-active');
        $('.mobile-menu__background').toggleClass('menu-bcg');
    });
  });
  • Вопрос задан
  • 724 просмотра
Решения вопроса 1
@dero
о себе
$(document).mouseup(function (e){ // событие клика по веб-документу
		var div = $(".mobile-nav-toggle"); // Элемент, клик по которому не должен приводить к закрытию. 
		if (!div.is(e.target) // если клик был не по нашему блоку
		    && div.has(e.target).length === 0) { // и не по его дочерним элементам
			 $('.mobile-menu').removeClass('menu-active');
        $('.mobile-menu__background').removeClass('menu-bcg');
		}
	});


И другие вариации. Например: https://only-to-top.ru/blog/coding/2019-09-30-klik...
https://www.google.com/search?q=jquery+%D0%BA%D0%B...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
htmlbook.ru/css/not или jquery not()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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