KlenOfSky WEB Agency - создание и тех. поддержка сайтов. Продвижение в Яндекс и Google

Создание сайтов, поисковое продвижение в Google. Сопровождение, тех.поддержка


Звонить: +7 (999)96-88-777
Писать: web@klenovsky.ru


Закрытие элемента при клике вне его области

Закрытие элемента при клике вне его области

Согласитесь, что намного удобнее закрыть всплывающее окно, кликнув в любом месте за его пределами, нежели по крестику, предварительно перетаскивая к нему курсор мышки. Кроме того, бывают такие ситуации при которых использовать кнопку закрытия неполучится в принципе, например: выпадающие кастомные селекты, меню, формы поиска.

Итак, что же нам необходимо для реализации такого приема, как закрытие блока при клике за его приделами? Понять его алгоритм:

  1. Есть открытое popup-окно, блок меню или прочее.
  2. Хотим, чтобы при клике за его пределами оно закрывалось.
  3. Соответственно, будем работать с событием «Произошёл клик по странице» с проверкой выполнения двух условий: «Клик был не по нашему элементу» и «Клик был не по дочерним элементам нашего элемента».
  4. Если оба условия в нашем событии выполняются, скрываем элемент.

Теперь собственно сам код:

jQuery(function($){
    $(document).mouseup(function (e){ // отслеживаем событие клика по веб-документу
        var block = $("#block"); // определяем элемент, к которому будем применять условия (можем указывать ID, класс либо любой другой идентификатор элемента)
        if (!block.is(e.target) // проверка условия если клик был не по нашему блоку
            && block.has(e.target).length === 0) { // проверка условия если клик не по его дочерним элементам
            block.hide(); // если условия выполняются - скрываем наш элемент
        }
    });
});
Большая Семеновская, 42 10509 Россия, город Москва, +7 (999)96-88-777
Рассказать друзьям:

comments powered by Disqus