无法获取新创建元素的高度
Javascript: unable to get height of newly created element
使用新元素(例如body.append(html))更新DOM后,我不能立即获得新更新元素的高度(例如body.height())。部分修复方法是设置时间间隔并在时间间隔结束时获取高度(setTimeout("alert(body.height)", 500))。
有更好的主意吗?像DOM完全更新后的回调吗?谢谢。
编辑:这只发生在后台有很多事情要做的时候(即当页面第一次加载的时候)。如果没有其他处理,页面更新似乎几乎是即时的。我需要的是一个回调,或者一个指示DOM何时被修改的指示器!
编辑:这个问题来自于浏览器被其他进程"分心",这使得浏览器无法在元素追加后立即更新。我该如何解决这个问题?
timeout方法之所以有效,是因为渲染引擎有机会在那里显示新元素,方法是给它一个改变来渲染它,从而为它分配一个高度。
可以将超时时间设置为0,仍然具有相同的效果
使用jQuery对我来说很好。
在jsfiddle演示中,我放入了下面的代码:
$(function(){
var jTest = $('#test');
console.log('The height:',jTest.innerHeight(),jTest.height()); //Show me 'The height: 20 20'
jTest.append('<div><br/>How are you?</div>');
console.log('The height:',jTest.innerHeight(),jTest.height()); //Show me 'The height: 60 60'
});
相关文章:
- 查找元素高度,包括边距
- 根据元素高度和宽度的百分比变化增加或减少字体大小
- 更改第二次推送时不起作用的元素高度
- 指示中的角度手表元素高度
- 在 HTML/CSS 中更改元素高度与宽度的比较
- 获取元素高度的正确方法(使用所有浏览器?)
- 访问NativeScript中的元素高度
- 如何“;“修复”;显示滚动条时的容器元素高度
- 当元素高度不够时,如何强制滚动
- CSS webkit溢出隐藏和HTML元素高度
- 如果元素高度大于 x 添加类“纵向”,则添加类“横向”
- 如何获取离子对话框中动态加载的元素的元素高度
- AngularJS 指令中的元素高度
- 铬:设置元素高度的脚本是什么
- 哇.js偏移等于元素高度
- 如何获得隐藏元素高度
- jQuery - 如果其他元素可见,则更改元素高度
- 根据元素高度拆分段落的最有效方法
- 检测元素高度变化,如果太小则隐藏
- 根据 jQuery 中多个实例上的另一个元素高度设置高度