Jquery简单隐藏Div但设置较小的高度

Har*_*rry 1 css jquery

为什么这段代码试图隐藏div然后再显示它?使用firefox

$(document).ready(function(){

    $("#tool1").click(function(){
       if($('#status').height() > 100){
           $('#status').css('height','50px').show();
       }    
    });

});
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助到目前为止他们都工作.然而,这是我有DEMO的确切代码

the*_*dox 6

$("#tool1").click(function(){
   if($('#status').height() > 100){
     $('#status').hide(500, function() {  // hide the div
        $(this)
             .css('height','50px')  // change the height
             .show(500); // then show again
     });
   }    
});
Run Code Online (Sandbox Code Playgroud)

DEMO

根据上述评论

$("#tool1").click(function(){
   var orig = $('#status').height(),
       target = orig == 250 ? 50 : 250;
       $('#status').animate({
           height: target      
       },1000);  
});
Run Code Online (Sandbox Code Playgroud)

DEMO

根据以下评论

  • 按钮在里面 #status

按钮内部演示

根据你的演示

改变你的代码如:

$(document).ready(function() {
    $("#tool1").click(function(e) {
        e.preventDefault(); // preventDefault() for pare reload
        var $statusDiv = $('#status');
        if ($statusDiv.height() > 100) {
            $statusDiv.height(50);
        }
        else {
            $statusDiv.height(250);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

DEMO

注意

您还可以删除href#tool1

目前#tool1是链接标记,如果你想使用一个按钮,而不仅仅是e.preventDefault()从上面的代码中删除.

  • @Harry:如果您打算使用链接而不是按钮,但您想要的只是调整div的大小.只需将tools1保留为按钮或div,并使用样式使其看起来像链接,而不是试图补偿页面重新加载. (2认同)