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

Скрыть блок при клике на другой блок?

Всем привет.

Суть вопроса такая.

Имеется меню. При клике на элемент меню открывается подменю. При клике на второй элемент меню, открывается другое подменю. Нужно сделать чтобы при клике на следующий элемент предыдущее подменю скрывалось и открывалось новое.

Помогите.
  • Вопрос задан
  • 473 просмотра
Подписаться 5 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@TANK_IST
Допустим за открытое меню отвечает класс show
Тогда все просто:
$('nav li').click(function() {
        $(this).parents('nav').find('.show').removeClass('show');
        $(this).addClass('show').parents('li').addClass('show');
    });
Ответ написан
Комментировать
@cccr85
Примерно так, не проверял
<ul class="menu">
   <li>
       <a href="#" title="">Ссылка</a>
       <ul>
		   <li>
		        <a href="#" title="">Ссылка</a>
		        <ul>
				   <li><a href="#" title="">Ссылка</a></li>
				   <li><a href="#" title="">Ссылка</a></li>
				</ul>
		   </li>
		   <li>
		        <a href="#" title="">Ссылка</a>
		        <ul>
				   <li><a href="#" title="">Ссылка</a></li>
				   <li><a href="#" title="">Ссылка</a></li>
				</ul>
		    </li>
		</ul>
   </li>
   <li>
      <a href="#" title="">Ссылка</a>
      <ul>
		   <li>
		        <a href="#" title="">Ссылка</a>
		        <ul>
				   <li><a href="#" title="">Ссылка</a></li>
				   <li><a href="#" title="">Ссылка</a></li>
				</ul>
		   </li>
		   <li>
		        <a href="#" title="">Ссылка</a>
		        <ul>
				   <li><a href="#" title="">Ссылка</a></li>
				   <li><a href="#" title="">Ссылка</a></li>
				</ul>
		    </li>
		</ul>
    </li>
</ul>

$(function(){
	$('.menu').find('a').on('click.menu', function(e){
		e.preventDefault();
		var $parent = $(this).parent();
		if ($parent.hasClass('active')) {
			$parent.removeClass('active');
		} else {
			$parent.parent().find('.active').removeClass('active');
			$parent.addClass('active');
		}
	});
});


.menu ul { display: none; }
.menu li.active > ul { display: block; }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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