【发布时间】:2015-07-28 19:31:02
【问题描述】:
我有一个简单的菜单/手风琴滑块。我想将 class="active" 添加到单击的链接并向下滑动以显示 UL。当单击另一个单独的菜单项时,应从前一个元素中删除活动类并添加到刚刚单击的元素中。此外,如果在活动模式下单击相同的内容,则滑块应向上滑动并删除活动类。
我尝试了下面的各种配置,但每次都无法在单击以向上滑动活动类时删除活动类。任何帮助表示赞赏。
$(document).ready(function(menuSlide) {
$('li.menu-item-has-children a').click(function () {
if ($('li.menu-item-has-children a').hasClass('active')) {
$('li.menu-item-has-children a').removeClass('active');
}
else {
$(this).addClass('active');
}
$(this).next('ul').slideToggle();
$(this).parent().siblings().children().next().slideUp();
return false;
});
});
更新 - 已经创建了一个快速的JSFiddle 来演示这个问题,很抱歉没有在开放问题上做。您可以看到,如果单击相同的项目来切换状态,则仍然处于活动状态。
【问题讨论】:
-
我们还能看到相关的HTML吗?有助于了解正在使用的元素的结构。
-
从您的条件中删除
else。如果您的锚标记在类中处于活动状态,则不会设置新类。基本上你是说:如果任何锚的类名处于活动状态,请将其删除。如果没有锚标签的类名处于活动状态,则设置一个。 -
如果你的 JavaScript 中有一些 HTML 会容易得多。也许您可以在 js-fiddle 中创建一个运行示例来说明您的问题?
-
Fiddle 更新了道歉。
标签: javascript jquery