1

小提琴:http: //jsfiddle.net/vuKqw/60/

什么会允许“活动”类在单击两次时保持附加到项目?预期的行为是只有在单击新选项卡时才会更改类。否则,例如,如果同一个选项卡被单击两次,它应该保持“活动”状态,而不是在活动和非活动之间切换。

$('nav li a').click(function() {
    $(this).parent().toggleClass('active').siblings().removeClass('active');
});

参考:单击菜单上的 Jquery 更改类


我最终把它分解成一个函数:http: //jsfiddle.net/vuKqw/72/

function tabchange() { 
 var parent = $(this).parent();
    if(!parent.hasClass('active')) {
        parent.addClass('active').siblings().removeClass('active');
}
};

$('nav li a').click(tabchange)​

谢谢@Madbreaks 的回答——这为我指明了正确的方向。

4

1 回答 1

2

首先检查父级是否处于活动状态:

$('nav li a').click(function() {
    var parent = $(this).parent();
    if(!parent.hasClass('active')){
        parent.addClass('active').siblings().removeClass('active');
    }
});

注意使用 'addClass' 而不是 'toggleClass' - 在您确切知道自己在做什么的情况下更具体(目的只是添加类)。

干杯

于 2012-08-07T19:31:39.877 回答