一旦div达到一定高度,使用jQuery将div的高度更改为auto

时间:2011-06-09 17:22:30

标签: jquery css html height

我有一个div,允许用户动态添加其他表单输入。我希望能够在达到一定高度后将div的高度更改为auto。这是我的jQuery代码,虽然它目前似乎没有工作。

$(document).ready(function(){
if($('#upload3').height() > 400){ $('#upload3').css('width','auto'); }  });

4 个答案:

答案 0 :(得分:11)

这只会在文档准备就绪时运行ONCE。您需要将其放在resize()事件处理程序中:

$('#upload3').resize(function() {
  if($(this).height() > 400){ $(this).css('height','auto'); }  });
});

答案 1 :(得分:1)

您需要绑定div的resize事件

$(document).ready(function(){

$("#upload3").bind("resize", function() {
   if($('#upload3').height() > 400){ $('#upload3').css('width','auto'); }
});

});

答案 2 :(得分:1)

if语句只在​​文档准备好后才会运行。如果你想在其他事情发生时做某事(事件!),你需要一个事件处理程序。

另外,在您的示例中,您将width设置为auto,而不是高度。

但实际上,您不需要使用javascript来执行此操作,只需在CSS中设置最小高度即可。当内容溢出最小高度时,块将伸展以适合内容,就像没有设置高度一样。

示例:

#upload3 {
    min-height: 400px;
}

答案 3 :(得分:0)

div的高度何时变化?是否有任何事件触发代码来改变这个div的高度?如果您知道该事件,那么您应该在那里设置高度。