javascript - 如何在元素完成渲染后立即运行函数?

标签 javascript jquery dom dom-events

我需要根据另一个元素的高度设置一个元素的高度。假设该元素完成渲染后,其高度为 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/

相关文章:

javascript - 通过 javascript 上传票证上传到 Azure Blob

jquery - 如何防止 Woocommerce 在结账页面选择默认付款方式?

javascript - HTML 固定标题 - 将位置 th 与 td 对齐

jquery - 当 IE8 不是 IE8 时,$.browser.version 是什么?

javascript 无法显示警报

javascript - 页面加载前 childNodes 列表为空

javascript - document.getElementById 在将 svg 移动到对象标记中时导致 null

javascript - 检查数组元素是否已定义的简写

javascript - jQuery 无法正确打开 2 个连续的模式对话框

java - 将命名空间添加到已创建的 XML 文档