Закрытие подменю при открытии другого

Тема в разделе "JavaScript", создана пользователем Iga, 13 дек 2018.

  1. Iga

    Iga

    Регистр.:
    12 янв 2014
    Сообщения:
    333
    Симпатии:
    53
    На сайте https://steptosea.com/ в мобильной версии хочется сделать так, что бы при открытии одного подменю, закрывалось другое.
    Пробовал такую конструкцию - не работает.
    Код:
    jQuery(document).ready(function(){
      jQuery('.nav > div > ul > li > a > b').click(function(e){
        e.preventDefault();
        jQuery('.nav > div > ul > li').find('ul').slideUp();
        jQuery(this).next().slideToggle();
      });
    });
    
    Сайт на WP, меню WP mega menu. В тот раздел не пошел, так как логика подсказывает, что это чисто script.
    Код менюхи из-за плагина очень громоздкий, не стану его сюда постить. Кто чувствует в себе силу исправить мою ошибку, гляньте, пожалуйста код на сайте.
     
  2. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    506
    Симпатии:
    359
    HTML:
    jQuery(document).ready(function($){
      $('#menu-top-menu > li').on('click',function(){
        $('.wp-megamenu-sub-menu').hide();
        $(this).find('.wp-megamenu-sub-menu').slideDown();
      });
    });
     
    mSnus и Iga нравится это.
  3. mSnus

    mSnus Постоялец

    Регистр.:
    4 дек 2015
    Сообщения:
    72
    Симпатии:
    27
    туда ещё надо написать, чтобы клик по открытому пункту меню сворачивал его обратно.
    то есть проверить, развернут ли пункт, по которому кликнули, если развернут (стиль стоит display:block) - свернуть,
    если нет (display: none) - можно разворачивать через slideDown, как написал Absolute выше.
     
    Iga нравится это.