Как определить клик вне элемента

Наиболее частый случай - закрытие элемента по клику за его границами.

Как закрыть меню по клику вне при помощи JavaScript

При помощи делегирования

Один из самых простых и безопасных способов - создать функцию, выбрасывающую событие по клику вне элемента.

function detectClickOutsideMenu(selector, eventName) {
    $(document).on('click', function(event) {
        if (!$(event.target).closest(selector).length) {

            $('body').trigger(eventName);

        }
    });
}

selector - jQuery selector  элемента, вне которого регистрируем клики.
eventName - имя события, на которое будете подписываться.

Затем инициализируем наш вотчер с нужными параметрами:

detectClickOutsideMenu('.mymenu', 'mymenu_click-outside');

И подписываем на данное событие функцию закрытия меню:

$('body').on('slicknav_menu_click-outside', function (event) {
    mymenu.close();
});

 


Обновлено: 25.11.2017

Вам помогла эта статья? Оцените!
(2 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *