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

Всем привет.

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

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

Помогите.
  • Вопрос задан
  • 467 просмотров
Пригласить эксперта
Ответы на вопрос 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; }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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