我有这个切换滑动打开菜单并添加一个活动类让你知道它是开放的,我已经拼凑了这个并且有一个小故障..
$(".parents-toggle > a").click(function () {
$(this).toggleClass('active');
$(".parents-toggle > ul.sub-menu").not($(this).siblings()).slideUp();
$(this).siblings(".sub-menu").slideToggle();
});
$(".parents-toggle-inner > a").click(function () {
$(this).toggleClass('active');
$(".parents-toggle-inner > ul.sub-menu").not($(this).siblings()).slideUp();
$(this).siblings(".sub-menu").slideToggle();
});
如果您同时点击任何其他按钮,它仍保持活动状态,因此除非您关闭它,否则保持活动状态....
如果单击页面上的任何其他链接,是否可以删除活动类?所以,即使有另一个切换菜单与这个菜单分开,所以理想情况下任何链接......?
你可以看到你得到了大量的橙色/活动按钮
任何帮助都会很棒。
答案 0 :(得分:1)
在点击事件中添加$('.active').removeClass('active');
。那应该解决它。
这样,您现在的代码变为:
$(".parents-toggle > a").click(function () {
$('.active').removeClass('active'); // <---- This line added
$(this).toggleClass('active');
$(".parents-toggle > ul.sub-menu").not($(this).siblings()).slideUp();
$(this).siblings(".sub-menu").slideToggle();
});
基本上,您所做的是确保在class=active
点击的链接之前没有与toggleClass()
的链接。
您可以对内部或子链接执行相同的操作。
答案 1 :(得分:0)
在将类应用于任何其他元素之前,从同一级别删除该类:
$(".parents-toggle > a").click(function () {
$(".parents-toggle > a").removeClass('active');
$(this).toggleClass('active');
$(".parents-toggle > ul.sub-menu").not($(this).siblings()).slideUp();
$(this).siblings(".sub-menu").slideToggle();
});