@CODALSD

Как написать условие для ссылок?

Есть следующий код обработчик аккордеон меню, как можно прописать условие что бы при клике на ссылку срабатывала и ссылка и скрипт, при этом работа скрипта оставалась такой же как и сейчас. То есть при клике раскрываются подменю и при клике на следующий элемент, предыдущее скрывается.
$('.accordion > li > a').click(function(e) {
  	e.preventDefault();
  
    var $this = $(this);
  
    if ($this.next().hasClass('show')) {
        $this.next().removeClass('show');
        $this.next().slideUp(350);
    } else {
        $this.parent().parent().find('.sub-menu').removeClass('show');
        $this.parent().parent().find('.sub-menu').slideUp(350);
        $this.next().toggleClass('show');
        $this.next().slideToggle(350);
    }

   if ($this.hasClass('active')) {
      $this.removeClass('active');
  } else {         
      $this.parent().parent().find('a').removeClass('active');
      $this.toggleClass('active');
  };
});


P.S. Если просто убрать preventDefault, то страница перезагружается с закрытыми пунктами подменю
  • Вопрос задан
  • 88 просмотров
Решения вопроса 2
ApeCoder
@ApeCoder
  1. Переместить обработчик в событие после загрузки страницы
  2. Необходимость раскрытия подменю выразить в url (mypage.html#menu1Opened)
  3. Анализировать window.location и обрабатывать вид текущего URL
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
как можно прописать условие что бы при клике на ссылку срабатывала и ссылка и скрипт

Никак. Если сработает ссылка - страница будет перезагружена.
Можно сохранить в кукисах ссылку на последний объект клика в меню, а потом его развернуть по загрузке страницы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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