jquery下拉菜单,切换类

Posted

技术标签:

【中文标题】jquery下拉菜单,切换类【英文标题】:jquery dropdown menu, toggling classes 【发布时间】:2013-02-23 19:19:57 【问题描述】:

我有一个下拉菜单,并在单击时使用 jQuery 来切换类。 因此,当我单击 <a> 时,其父 <li> 变为活动状态,从而使用 css 显示其子菜单。 我的问题是,RemoveClass 的目的是,它会删除已经打开的子菜单中的 active 类。

问题是当我再次点击<a>时,它并没有关闭当前的子菜单,即它似乎没有切换,只是添加了类。

$("#pop-out-left ul li a").click(function () 
    $("#pop-out-left ul li").removeClass("active");
    $(this).parent().toggleClass("active");

    );

这里是 CSS..

#pop-out-left > ul > li.active > a + ul 
display: block;

【问题讨论】:

显示您的 html 标记 【参考方案1】:

这是因为您开始使用以下代码删除所有 li 标记上的 active 类:

$("#pop-out-left ul li").removeClass("active");

然后,当您切换时,该类会再次添加。这意味着第二次点击只是重复第一种情况。

要解决它,只需更改上面的语句以排除单击的项目,如下所示:

$("#pop-out-left ul li a").click(function () 
    $("#pop-out-left ul li")
        .not($(this).parent())
        .removeClass("active");
    $(this).parent().toggleClass("active");
);

这是一个有效的小提琴:jsfiddle.net/dDhYu

【讨论】:

以上是关于jquery下拉菜单,切换类的主要内容,如果未能解决你的问题,请参考以下文章

引导导航下拉菜单切换问题

Bootstrap 下拉菜单不与新的 Rails 布局切换

在 div 下拉菜单之外单击时隐藏,但未显示切换

JQuery 自动检查复选框并显示下拉菜单

Bootstrap 4打开多个导航栏下拉菜单,无需切换

jQuery+PHP+MySQL实现二级联动下拉菜单