2012-04-13 59 views
0

我有一系列使用jquery .animate方法打開的選項卡。他們都有相同的類名,所以我使用.children方法只打開點擊標籤。jquery目標非子元素

問題是我需要關閉所有其他標籤打開時。我需要定位除了被點擊的那個孩子以外的所有標籤內部類。

<div class="tab"> 
    <div class="tab-inner"> 
    </div> 
</div> 

<div class="tab"> 
    <div class="tab-inner"> 
    </div> 
</div> 

<div class="tab"> 
    <div class="tab-inner"> 
    </div> 
</div> 

$('.tab').toggle(function() { 
     $(this).children('.tab-inner').animate({width: 840}); 
    }, function() { 
     $(this).children('.tab-inner').animate({width: 60}); 
    }); 

回答

3
$(this).siblings().children('.tab-inner') 
+0

謝謝,這個完美的作品。 – jimbouton 2012-04-13 13:38:35

0

你可以只動畫所有.tab-inner要素第一:

$('.tab').toggle(function() { 
    $('.tab-inner').animate({ width : 60 }); 
    $(this).children('.tab-inner').animate({ width : 840 }); 
}, function() { 
    $(this).children('.tab-inner').animate({ width : 60 }); 
});