Как скрыть элемент при клике за его пределами?

При клике на пункт меню показываются подменю, при клике на любое место документа (кроме самого подменю), оно закрывается, НО при клике на другие пункты меню показывается их подменю, а другие должны закрываться.
У меня же сейчас при клике по документу работает всё как надо, но при клике на другие пункты меню, предыдущие подменю не закрываются. В общем, вот наглядный пример jsfiddle.net/lokdmt/702o88vf
  • Вопрос задан
  • 950 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$(document).click(function(e) {
  const $target = $(e.target);
  let $itemsToClose = $('.top-menu__item');

  if ($target.hasClass('top-menu__link')) {
    const $item = $target.closest('li');
    $item.toggleClass('top-menu__item_open').children('ul').slideToggle();
    $itemsToClose = $itemsToClose.not($item);
  }

  $itemsToClose
    .removeClass('top-menu__item_open')
    .children('ul')
    .slideUp();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы