单击两次时添加活动类而不删除

时间:2012-08-07 19:27:53

标签: jquery css

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

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

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

参考:Jquery change class on click menu


我最终把它分解成一个函数: 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的答案 - 这指向了正确的方向。

1 个答案:

答案 0 :(得分:2)

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

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

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

干杯

相关问题