Javascript 单击子项时从父项中移除活动状态,反之亦然

Javascript 单击子项时从父项中移除活动状态,反之亦然,javascript,jquery,wordpress,addclass,removeclass,Javascript,Jquery,Wordpress,Addclass,Removeclass,我需要一种方法来让我的活动状态在侧边栏中正常工作 目前我的问题是: 单击li时,所有子菜单将接收活动状态 单击子菜单li后单击li not子菜单时,不会删除已单击子菜单li的活动状态 希望你能帮忙 $("#sidebar li").click(function(){ $(this).siblings().removeClass('active'); $(this).addClass('active'); $('#sidebar li').children().remove

我需要一种方法来让我的活动状态在侧边栏中正常工作

目前我的问题是:

单击li时,所有子菜单将接收活动状态

单击子菜单li后单击li not子菜单时,不会删除已单击子菜单li的活动状态

希望你能帮忙

$("#sidebar li").click(function(){
    $(this).siblings().removeClass('active');
    $(this).addClass('active');
    $('#sidebar li').children().removeClass('active');
});
html

呈现的html:


找到了两个问题的解决方案

1:

我通过css而不是jquery使用伪元素实现了这一点。 我之所以做了一些:before元素是因为我的子菜单列表项上有一些缩进

CSS:

2:归功于@mark.hch

首先从所有列表项中删除活动类。 接下来,将活动类添加到单击的列表项

$('#sidebar li').removeClass('active');
$(this).addClass('active');

找到了两个问题的解决方案

1:

我通过css而不是jquery使用伪元素实现了这一点。 我之所以做了一些:before元素是因为我的子菜单列表项上有一些缩进

CSS:

2:归功于@mark.hch

首先从所有列表项中删除活动类。 接下来,将活动类添加到单击的列表项

$('#sidebar li').removeClass('active');
$(this).addClass('active');

请发布您的HTML代码。我不认为这是必要的,但可以肯定。我认为它不是正确的HTML@Jonas,因为我看不到ul和lis.wp_nav_菜单输出所有这些内容。你能从inspector发布呈现的HTML以供参考吗?你可以从浏览器inspector选择ul并单击F2然后复制。请发布你的HTML代码。我不认为这是必要的,但可以。我认为它不是正确的HTML@Jonas,因为我看不到ul和lis.wp_nav_菜单输出所有这些内容。您可以从inspector发布呈现的HTML以供参考吗?您可以从浏览器inspector选择ul复制它,然后单击F2复制。
$('#sidebar li').removeClass('active');
$(this).addClass('active');