小提琴: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的答案 - 这指向了正确的方向。
答案 0 :(得分:2)
首先检查父项是否处于活动状态:
$('nav li a').click(function() {
var parent = $(this).parent();
if(!parent.hasClass('active')){
parent.addClass('active').siblings().removeClass('active');
}
});
请注意使用'addClass'而不是'toggleClass' - 在您确切知道自己正在做什么的情况下更好地更具体(只有添加类的意图)。
干杯