Как отработать клик вне блока?

Всем привет!
Как отработать клик вне блока?
Очень круто реализовано на сайте Landistore.com, при открытии меню или корзины, появляется чёрная подложка, при клике которой, закрывается меню и корзина
  • Вопрос задан
  • 22523 просмотра
Решения вопроса 2
sharpfellow
@sharpfellow
Front
VanillaJs
function onClickClose(elem) { // вызвать в момент показа окна, где elem - окно
    function outsideClickListener(event) {
        if (!elem.contains(event.target) && isVisible(elem)) {  // проверяем, что клик не по элементу и элемент виден
             elem.style.display = 'none'; //скрыть
             document.removeEventListener('click', outsideClickListener);
        }
    }
    document.addEventListener('click', outsideClickListener)
}
function isVisible(elem) { //открыто ли условное окно
   return !!elem && !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
}
Ответ написан
Комментировать
Paramid
@Paramid
jQuery(function($){
	$(document).mouseup(function (e){ // событие клика по веб-документу
		var div = $("#popup"); // тут указываем ID элемента
		if (!div.is(e.target) // если клик был не по нашему блоку
		    && div.has(e.target).length === 0) { // и не по его дочерним элементам
			div.hide(); // скрываем его
		}
	});
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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