我需要根据另一个元素的高度设置一个元素的高度。假设该元素完成渲染后,其高度为 490 像素。
如果我在 $(document).ready()
内的函数开头查询其他元素的高度,它返回 432px。
如果我查询setTimeout(function, 100)
内其他元素的高度,它返回大约 475px。
如果我撞到setTimeout
达到 150 左右,元素完成渲染,我得到 190。但显然我不能指望这一点。
如果可能的话,我不想等待整个页面完成加载;我只想等待这个元素。
看起来像load
event 应该适用于任意元素,但据我所知,这在浏览器中(或者至少在 Chrome 中)尚未实现。
编辑:该元素不是图像,并且(几乎可以肯定)该元素内不会有任何图像。这只是一个<div>
与其他一些<div>
和 <p>
以及里面的东西。高度显然是在应用 CSS 或其他东西的过程中被查询的。代码示例即将推出。
编辑2:Here's a fiddle我的网站被黑了。 (请原谅可怕的标记;我还没有清理 Drupal 的输出。)不过, fiddle 并没有表现出我试图纠正的不良行为,因为整个片段在 Javascript 的相关部分之前就被渲染了。运行。
有没有办法做到这一点,还是我坚持 window.onload
?
最佳答案
你可以这样做:
<img src="myImage.gif" onload="loadImage()">
关于javascript - 如何在元素完成渲染后立即运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042241/