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

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

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

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

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