【问题标题】:Add active class without removing when clicked twice单击两次时添加活动类而不删除
【发布时间】:2012-08-07 19:27:53
【问题描述】:

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

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

$('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 的回答——为我指明了正确的方向。

【问题讨论】:

    标签: jquery css


    【解决方案1】:

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

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

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

    干杯

    【讨论】:

    • 完美,除了你在 if 评估中缺少一个 close ) 。谢谢!
    • 确实,我是,固定的。很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多