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

问题描述 投票:2回答:2

我需要根据另一个元素的高度设置一个元素的高度。假设该元素完成渲染后,高度为490px。

如果我在$(document).ready()中的函数开头查询其他元素的高度,它将返回432px。

如果我查询setTimeout(function, 100)内其他元素的高度,它将返回大约475px。

如果将setTimeout增大到150左右,则该元素已完成渲染,得到190。但是显然我不能指望此。

如果可能,我不想等待整个页面完成加载;我只想等待这个元素。

load事件似乎应该在任意元素上起作用,但据我所知,它在浏览器或Chrome中至少没有实现。

EDIT:该元素不是图像,并且(几乎可以肯定)没有图像会出现在该元素内。它只是带有其他<div><div>及其内容的<p>。高度显然是在要应用的CSS中间查询的。代码示例即将推出。

EDIT 2Here's a fiddle被黑客入侵了我的网站。 (请原谅可怕的标记;不过,我还没有清理Drupal的输出。)小提琴并没有表现出我要纠正的不良行为,因为整个代码段在Javascript的相关部分被渲染之前就已经呈现出来了。运行。

有没有办法做到这一点,或者我坚持使用window.onload

javascript jquery dom dom-events
2个回答
0
投票
load()也可以在图像上使用。您应该能够正确使用它,而无需setTimeout

[http://api.jquery.com/load-event/包含关于图像不能可靠工作的通知。

© www.soinside.com 2019 - 2024. All rights reserved.