我正在动态创建DOM元素(更具体地说,使用jQuery创建一个DIV,其中包含一些带有css“width:auto”的文本,并在页面OnLoad事件中使用“font-face”字体)但发现宽度div在我创建它并将其添加到 DOM 树后立即不是预期的大小(特别是宽度错误) 。我需要知道元素的宽度/高度,因为我将对其进行一些动态布局。
作为一种解决方法,我在创建元素后使用以下代码:
设置超时(完成布局,100)
通过使用这个额外的超时延迟我的布局的完成,一切正常,所有元素大小都完全符合预期(在 Ubuntu Linux 上的最新 Chrome 中)
但是,这种 klugey 计时器延迟冒犯了我的敏感性,并且显然是不安全的……有没有办法通过特定的命令强制进行精确的尺寸计算?或者,是否有一个我可以注册的事件,只有在所有 DOM 元素都正确调整大小后才会触发,在创建新的动态元素之后?(我正在描绘类似 IMG onload 事件,它允许您在加载图像后找出图像的正确尺寸)
tl;dr:是否可以保证新创建的 DOM 对象的宽度何时准确?
谢谢你的帮助!