2013-07-30 105 views
0

我使用此代碼顯示/隱藏一個div,通過改變其高度:jQuery的CSS高度切換

$("#about").click(function(){ 
    if ($('#descrition').css('height') === '280px') { 
     $("#description").css("height","0px"); 
    } else { 
     $("#description").css("height","280px"); 
    } 
}); 

它可以擴大格,但不會當我再次點擊將其隱藏。有任何想法嗎?

PS:高度的變化很重要,因爲我使用css轉換來爲div製作動畫,所以顯示器的變化不是一個選項。

回答

2

這都將解決您的問題,加快代碼,刪除重複的jQuery的解析......

$("#about").click(function() { 
    var $description = $("#description"); 
    if ($description.height() === 280) { 
     $description.height(0); 
    } else { 
     $description.height(280); 
    } 
}); 

正如putvande指出的那樣,是一個錯字,而試圖讓高度。上面還將jQuery對象存儲爲局部變量,而不是重複解析DOM。

+0

+1用於儘可能避免DOM – zigo

1

這是因爲你有一個錯字。

在您的第一行中,您檢查('#descrition').css('height')而不是('#description').css('height')

但你也可以使用:

$('#description').height(); 

但給人的值沒有「像素」。

+0

該死的。非常感謝。 – jrmy

+0

您獲得了我的+1,但我在下面添加了一些。 – Archer