Задать вопрос

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

При клике на пункт меню показываются подменю, при клике на любое место документа (кроме самого подменю), оно закрывается, НО при клике на другие пункты меню показывается их подменю, а другие должны закрываться.
У меня же сейчас при клике по документу работает всё как надо, но при клике на другие пункты меню, предыдущие подменю не закрываются. В общем, вот наглядный пример jsfiddle.net/lokdmt/702o88vf
  • Вопрос задан
  • 953 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 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();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы