使用jQuery将div的高度在达到一定高度后更改为自适应高度

7

我有一个div,让用户可以动态添加表单输入。当它达到一定高度时,我想将此div的高度更改为自适应。以下是我编写的jQuery代码,但目前似乎无法正常工作。

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

2
你是想将 height 还是 width 改为 auto?你的描述和代码不一致。 - thirtydot
4个回答

12

当文档准备就绪时,此代码只会运行一次。您需要将其放在resize()事件处理程序内:

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

1
你需要绑定 div 的 resize 事件。
$(document).ready(function(){

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

});

1

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

此外,在你的例子中,你将width设置为auto,而不是高度。

但实际上,你不需要javascript来做这个,你可以在CSS中简单地设置一个最小高度。当内容超出最小高度时,块将伸展以适应内容,就像没有设置高度一样。

例如:

#upload3 {
    min-height: 400px;
}

0
一个 div 的高度什么时候会改变?有没有任何事件可以触发代码来改变这个 div 的高度?如果你知道那个事件,那么你应该在那里设置高度。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接