Я пытался найти решение, но я не могу, каждый код не подходит для моего проекта. Вот структура навигациидобавить/удалить класс по щелчку, навигация li item
<nav>
<ul class="menu">
<li>
<ul class="submenu">
<li><a></a></li>
<li><a></a></li>
<li><a></a></li>
<li><a></a></li>
</ul>
</li>
<li>
<ul class="submenu">
<li><a></a></li>
<li><a></a></li>
<li><a></a></li>
<li><a></a></li>
</ul>
</li>
<li></li>
<li></li>
</ul>
</nav>
$(".menu li").click(function(){
$(this).toggleClass("visible");
});
$('body').click(function(){
\t
if($(".menu li").hasClass("visible")){
$(".menu li").removeClass("visible");
\t };
});
Что хотите достичь в следующем:
- Когда я нажимаю на
.menu li
добавить классactive
- Когда я нажимаю на другой
.menu li
пункта или на.submenu li a
, удалить классactive
из другогоli
элемента, который имеет этот класс - А также, когда я нажимаю в другом месте (например, тело) также удалить класс из
.menu li
Надеюсь, вы понимаете, чего я хочу. Извините за мой плохой грамматики
Update:
Переключить Решение
Модифицированный код по: @Sasa Новакович (спасибо еще раз бро :))
function removeActiveMenuClass(active_element){
$('.menu li').not(active_element).removeClass('visible');
}
$('.menu>li').click(function(e) {
e.stopPropagation();
var $_this = $(this);
removeActiveMenuClass($_this);
if ($_this.hasClass('visible')) {
$_this.removeClass('visible');
}
else {
$_this.addClass('visible');
}
});
$('body').click(function() {
removeActiveMenuClass();
});
«каждый код не подходит для моего проекта». Где ваш код? – Mivaweb
Список требований не является достойным вопросом для переполнения стека. – PeeHaa
@Mivaweb Спасибо за внимание. – Stefan