我将div1附加到div2然后获取div2的height()。如果我在调用height()之前等待50ms,我会得到不同的高度。看起来我在浏览器完成渲染div1之前得到了高度。任何人都知道如何解决这个问题。我添加了很多元素,并且需要在每个元素之后检查高度,因此在每个元素之间有一个延迟似乎可能加起来相当延迟。
$(div2).append(div1);
console.log(div2.height()) // 295
where as...
$(div2).append(div1);
window.setTimeout(function(){
console.log(div2.height()) // 245
},50)
答案 0 :(得分:1)
您可以请求强制布局的某些属性。例如,如果您请求以下任何属性:
浏览器将在返回值之前布局该元素。如果您的布局很复杂,则可能需要在多个对象上请求属性才能获得多个项目的正确布局。
有关此概念的更多详情和工作演示,请参阅this answer和this article。
答案 1 :(得分:0)
将您的代码放入
$( document ).ready(function() {
// your code
});
它会起作用