Ste*_*fan 1 html javascript jquery
我试图找到解决方案,但我不能,每一个代码都不适合我的项目.这是导航结构
<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>Run Code Online (Sandbox Code Playgroud)
$(".menu li").click(function(){
$(this).toggleClass("visible");
});
$('body').click(function(){
if( $(".menu li").hasClass("visible") ){
$(".menu li").removeClass("visible");
};
});Run Code Online (Sandbox Code Playgroud)
接下来要做的是:
.menu li添加课程active.menu li项目或打开时.submenu li a,active从li具有该类的另一个项目中删除该类.menu li我希望你明白我想要的.抱歉我的语法不好
更新:
修改后的代码:@Sasa Novakovic(再次感谢兄弟:))
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();
});Run Code Online (Sandbox Code Playgroud)
小智 5
这是你jsfiddle的代码.
$('html').click(function() {
removeActiveMenuClass();
});
$( '.menu>li, .submenu>li' ).click(function(e) {
e.stopPropagation();
removeActiveMenuClass();
$(this).addClass('active');
});
function removeActiveMenuClass(){
$('.menu li').removeClass('active');
}
Run Code Online (Sandbox Code Playgroud)