2013-03-26 41 views
0

我有一个项目需要获取徽标的尺寸并相应地调整其位置。据我所知,页面上的所有元素都应该准备好在$(document).readyonload事件之后使用。我也尝试在关闭身体标记之前放置脚本,以确保我可以获取所有内容。我使用jQuery $(element).width$(element).height来测量徽标图像。页面加载后获取图片尺寸

但是,我没有得到这些值每次:我控制台登录这两个值。有时,它显示我为零,我猜测图像标签加载,但实际的图像仍在加载。我很困惑,因为我在网上搜索,他们都说所有的元素应该准备好,如果我使用DOM准备好或者把脚本标签放在最后。

+1

检查了这一点:http://stackoverflow.com/questions/623172/how-to-get-image-size-height-width-using-javascript – ophintor 2013-03-26 16:10:55

回答

0

页面上的所有元素都应该准备好在$(document).ready或onload事件之后使用。我也尝试在关闭身体标记之前放置脚本,以确保我可以获取所有内容。

不,$(document).ready事件resp。将脚本嵌入到主体中的最后一个元素只能保证DOM结构已经建立。那而不是意味着由任何元素引用的外部资源已经完成加载 - 唯一确保事件为load的事件。

jQuery文档明确警告将$(document).ready与“旧学校”加载事件处理(意思是body或window.onload上的onload属性)相结合 - 因此您应该使用.on('load', handler)来代替。但请注意文档中提到的有关图像的洞穴。

+0

这就是答案。非常感谢 – user2183143 2013-03-26 17:27:49

1

试试这个

$('#img').load(function() { 
// Handler for .load() called. 
}); 
+0

不幸的是,它每次都不工作。 – user2183143 2013-03-26 17:24:42

+0

每次图像添加到dom后调用它,你有方法内的断点? – 2013-03-26 18:53:35