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

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

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

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

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