Как привязать слушателя клика не к элементу в JavaScript

0

Я хочу выскочить из меню, и когда пользователь нажимает на позиции, отличные от меню, меню будет скрываться. Кроме того, если щелчок находится на некоторых узлах, у которых есть клики для кликов, эти функции обработки не будут запускаться. Я могу использовать прозрачный слой маски для реализации этого, но есть ли более простой способ (поскольку я использую jQuery)? Я попробовал: не селектор

$(document).on('click',':not(.menu)',function(e){
$('.menu').hide();
});

Но, похоже, это просто не работает (также я должен добавить e.stopPropgation() здесь)?

Теги:
javascript-events

1 ответ

2
Лучший ответ

Я бы написал что-то вроде этого:

$(document).on('click', function(e){
  if($(e.target).parents(".menu").length == 0)
     $('.menu').hide();
});
  • 0
    Хорошее предложение. Еще одна проблема заключается в том, что меню активируется кнопкой. Как я могу организовать слушателей, чтобы при нажатии кнопки меню отображалось? Теперь, когда я нажимаю кнопку, меню не отображается ... (я добавляю условие, что $ ('. Menu'). Css ('display')! = 'None' в вашем операторе if, но в консоли. показывает, что меню уже отображается (display: block), когда этот слушатель запущен, поэтому он снова скрыт)
  • 0
    Хорошо, если ($ (e.target) .parents (". Menu"). Length == 0 && $ (e.target) .parents (". Trigger_btn"). Length == 0) может работать ... спасибо очередной раз.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню