2013-02-13 95 views
0

我試圖在點擊它時使用jQuery切換div的高度。這就是我想要的:用jQuery切換CSS高度?

$("#otherBox").click(function() { 
    if($(this).css("height") == "200") { 
     $(this).css("height", "300") 
    } 
    else { 
     $(this).css("height", "200") 
    } 
}) 

我想使它如此,如果高度是200,它被設置爲300,反之亦然。爲什麼這不起作用?另外,如果有辦法讓它在高度之間平滑移動(如slideToggle),那很方便。

+1

變化'this'到'$(本)'。 – j08691 2013-02-13 15:49:09

+0

@ j08691我修復了所有'$(this)',但它仍然無法工作。 – tkbx 2013-02-13 15:54:37

+0

看到安東的回答。 – j08691 2013-02-13 15:55:14

回答

1

使用parseInt函數,因爲你得到 「200像素」 沒有200,你需要使用jQuery

if(parseInt($(this).css('height')) ==200) 
1

來包裝這個試試這個:

$("#otherBox").click(function() { 
    if($(this).height() == 200) 
     $(this).height(300); 
    else 
     $(this).height(200); 
}); 
1

我看到很多這些問題。我的回答總是容易被忽略的jQuery中的$.toggle()函數。

$("#otherBox").toggle(
    function() { 
     $(this).css({height: 300}); 
    }, 
    function() { 
     $(this).css({height: 200}); 
    }, 
); 

此代碼運行在click上指定的函數,在兩個函數之間交替。

(該功能易於在文檔中忽略,因爲它是更規範使用$.toggle()的很少使用過載)。

+0

從jQuery 1.9.x開始 - - http://api.jquery.com/toggle-event/ – 2013-02-13 16:41:28

+0

好了,數字。一段時間以來,它一直在被棄用的列表上,但該方法的文檔沒有說過時,所以我已經預感它會消失。 – 2013-02-14 19:46:32