2012-10-25 58 views
1

我有一系列觸發JQuery動畫的按鈕,其中面板在頁面底部下方滑動。這些面板絕對位於頁面的旁邊,並且當單擊一個按鈕時,相應的面板就會動起來。使用JQuery排除某些項目

該功能很好用,但我只想在任何給定時間顯示一個面板。

我的HTML是:

<div id="footerNav"> 
<a class="button" id="b1" href="#"><span></span>Upcoming Events</a> 
<a class="button" id="b2" href="#"><span></span>From the Blog</a> 
<a class="button" id="b3" href="#"><span></span>Global Leaders</a> 
<a class="button" id="b4" href="#">Watch Video</a> 
</div> 

<div id="paneb1" class="pane"></div> 
<div id="paneb2" class="pane"></div> 
<div id="paneb3" class="pane"></div> 

我jQuery是:

$("a.button").toggle(function(){ 
    idClick = $(this).attr("id"); 
    newSelector = $("#pane"+idClick); 
    newSelector.animate({ 'bottom' : 99}); 
    $(this).addClass("activeBtn"); 
}, function(){ 
    newSelector.animate({ 'bottom' : -275}); 
    $(this).removeClass("activeBtn"); 
}); 

我使用的不是選擇器,像這樣嘗試過,但沒有奏效:

$(".pane:not(newSelector)").animate({ 'bottom' : -275}); 

怎麼辦當按鈕被切換時,我需要在這裏執行以便將任何OTHER面板動畫回到其原始位置?

回答

1

您可以使用,而不是:not()選擇not()方法:

$(".pane").not(newSelector).animate({ bottom : -275 }); 

注意,最好是使用局部變量而不是全局的,所以考慮定義一個新的變量在使用var關鍵字:

var newSelector = $("#pane" + idClick); 
+0

因爲它是一個切換鍵,所以有兩個功能,一個用於第一次點擊,另一個用於第二次點擊。如果我添加了一個var,它只會在它所在的函數中可用,正確嗎? – JCHASE11

1

嘗試:

$(".pane").not(newSelector).animate({ 'bottom' : -275}); 

因爲你的版本沒有引用你所做的javascript var,所以它正在尋找一個名爲'newSelector'的選擇器。