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

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

Всем привет.

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

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

Помогите.
  • Вопрос задан
  • 469 просмотров
Подписаться 5 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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; }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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