在追加元素后,jQuery立即返回div元素的高度0

时间:2012-04-05 18:06:39

标签: javascript jquery dom

我有一个最初没有内容的浮动div。我使用jQuery将一组元素附加到div,然后立即调用原始div的height方法。我添加的元素在样式表中有一个定义的最小高度,而浮动div则没有。问题是,当我在原始div上调用高度时,我得到0.

如果我使用setTimeout将呼叫延迟甚至1毫秒,我得到适当的高度。我的理论是,当我调用height方法时,浏览器还没有完成对DOM的更改,所以它还没有设置顶级元素的hei?ht。这个高度会有所不同,因此使用固定高度。有谁知道可能导致这个问题的原因?

2 个答案:

答案 0 :(得分:0)

这应该取决于dom的大小。如果它很大,会有轻微的延迟。

答案 1 :(得分:0)

如果没有任何效果,那么您可能暂时想要考虑延迟的.then()函数。这是一个使用jsFiddle的例子: http://jsfiddle.net/yTTRq/