2013-02-13 91 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