我需要根据另一个元素的高度设置元素的高度。假设当该元素完成渲染时,它的高度为490像素。
如果我在$(document).ready()
内的函数开头查询其他元素的高度,则返回432px。
如果我在setTimeout(function, 100)
内查询其他元素的高度,则返回大约475px。
如果我将setTimeout
碰到150左右,那么元素就会完成渲染,我会得到190.但显然我不能指望它。
如果可能的话,我不想等待整个页面完成加载;我想只等这个元素。
似乎load
事件应该适用于任意元素,但据我所知,它在浏览器中或者至少在Chrome中没有实现。
编辑:元素不是图像,(几乎可以肯定)元素中不会有图像。它只是一个<div>
,其中包含其他<div>
个和<p>
个内容。在应用CSS的中间或其他东西中,高度显然是被查询的。代码样本即将发布。
编辑2 :Here's a fiddle被黑客攻击了我的网站。 (请原谅可怕的标记;我还没有清理Drupal的输出。)尽管如此,小提琴并没有表现出我想要纠正的不良行为,因为整个片段在Javascript的相关部分之前呈现运行
有没有办法做到这一点,还是我坚持使用window.onload
?
答案 0 :(得分:2)
您可以这样做:
<img src="myImage.gif" onload="loadImage()">
答案 1 :(得分:0)
您需要至少使用$(window).load()
,因为您需要等待可能影响页面元素尺寸的其他资源,例如图片和CSS表格。
load()
也适用于图片。你应该能够在不需要setTimeout
的情况下做到正确。
http://api.jquery.com/load-event/包含一条通知,表明它无法可靠地用于图像。