@sickgang

Как сделать скрытие соседних элементов при клике Jquery?

Есть вот такое меню, в некоторых меню есть выпадающее меню
<li class="nav-item">
                    <a href="#">Lorem</a>
                </li>
                <li class="nav-item">
                    <a href="#">Lorem</a>
                </li>
                <li class="nav-item">
                    <a href="#">Lorem</a>
                </li>
                <li class="nav-item">
                    <a href="">Lorem</a>
                    <ul class="nav-hidden submenu">
                        <li class="nav-item"><a href="">Lorem</a></li>
                        <li class="nav-item"><a href="">Lorem</a></li>
                        <li class="nav-item"><a href="">Lorem</a></li>
                    </ul>
                </li>

Написал вот такой скрипт, что бы при тыке на меню, оно выпадало, но выпадает не только одно, а все которые есть, и при клике на другую область, оно не убирается, как это пофиксить?

$(".nav li ul:has('.submenu')").hide();
            $(".nav li:has('.submenu')").click( function(e){
            e.preventDefault();
            $(".nav li ul").stop().fadeToggle(300);   
            }
            );
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$(document).on('click', function(e) {
  e.preventDefault();
  const $submenu = $(e.target).closest('li').children('.submenu');
  $submenu.fadeToggle();
  $('.nav li ul').not($submenu).fadeOut();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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