@LastGeneral

Как при повторном клике, по выбранному пункту меню, закрывать подменю?

<nav class="main-navigation">
  <ul class="maga-menu__list">
    <li class="mega-menu__item">
      <a>Пункт 1</a>
      <ul class="sub-menu">
        <li class="menu-item">
          <a>Под пункт 1</a>
        </li>	
        <li class="menu-item">
          <a>Под пункт 2</a>
        </li>	
      </ul>
    </li>
    <li class="mega-menu__item">
      <a>Пункт 2</a>
      <ul class="sub-menu">
        <li class="menu-item">
          <a>Под пункт 1</a>
        </li>	
        <li class="menu-item">
          <a>Под пункт 2</a>
        </li>
      </ul>
    </li>
    <li class="mega-menu__item">
      <a>Пункт 3</a>
      <ul class="sub-menu">
        <li class="menu-item">
          <a>Под пункт 1</a>
        </li>	
        <li class="menu-item">
          <a>Под пункт 2</a>
        </li>
      </ul>
    </li>
  </ul>
</nav>


ul {
    list-style-type: none;
}
.maga-menu__list {
  display: flex;
  gap: 20px;
}
.sub-menu {
  display: none;
}
.active .sub-menu {
  display: block;
}


var ACTIVE = 'active';
	$(".main-navigation > ul > li").on('click', function() {
		$(".main-navigation > ul > li").removeClass(ACTIVE);
		$(this).addClass(ACTIVE);
	});
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@LastGeneral Автор вопроса
var ACTIVE = 'active';
$(".main-navigation > ul > li").on('click', function() {
  let clickedElementIsActive = $(this).hasClass(ACTIVE);  
  $(".main-navigation > ul > li").removeClass(ACTIVE);
  
  clickedElementIsActive ? $(this).removeClass(ACTIVE): $(this).addClass(ACTIVE);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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