2010-06-27 67 views
1

这会将类添加到li中。当点击另一个li时,它也会添加类的当前值。但现在我有两个电流。你会注意到下面我试图从最初流行的li中删除类流。从LI中删除类jquery

var 
$tabs = $('.promo-tabs li'), 
$panes = $('.promo-panes > div'); 

$tabs.click(function(){ 
    $(this).addClass('current') 
    $(this).parent().siblings().find('li').removeClass('current'); 
    $panes.eq($tabs.index(this)).fadeIn().siblings().hide(); 
    return false; 
}); 

//Init Promo Tabs 
$tabs.first().click(); 

如何调整这条线,因此类被删除任何想法,一旦另一个李点击将是巨大的

$(this).parent().siblings().find('li').removeClass('current'); 

回答

4

为什么不

$tabs.removeClass('current') 

放置

$(this).addClass('current') 

?换句话说,只需从所有<li>元素中删除“当前”,然后将其添加到已被单击的元素中。

+0

完美的感谢!简单! – Andy 2010-06-27 21:31:03

1

下面应该工作:

$tabs.click(function(){ 
    $tabs.removeClass('current');  
    $(this).addClass('current') 
    $panes.eq($tabs.index(this)).fadeIn().siblings().hide(); 
    return false; 
}); 
+0

感谢您的输入。 – Andy 2010-06-27 21:38:16

1

我想回答你的问题是,这个

$(this).parent().siblings().find('li').removeClass('current'); 

检查父的兄弟姐妹在李标签。无论这些应该工作

$(this).siblings().removeClass('current'); 
$(this).parent().find('li').removeClass('current'); 

但我认为最有效的解决办法是

$(this).parent().find('li.current').removeClass('current'); 
$(this).addClass('current');