Наиболее частый случай - закрытие элемента по клику за его границами.
Как закрыть меню по клику вне при помощи 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
Вам помогла эта статья? Оцените!