0

我有一个项目需要获取徽标的尺寸并相应地调整其位置。$(document).ready据我了解,页面上的所有元素都应该在onload事件发生后立即可用。我还尝试将脚本放在结束正文标记之前,以确保我可以得到所有内容。我使用 jQuery$(element).width$(element).height测量徽标图像。

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

4

2 回答 2

1

尝试这个

$('#img').load(function() {
// Handler for .load() called.
});
于 2013-03-26T16:17:30.183 回答
0

页面上的所有元素都应该在 $(document).ready 或 onload 事件之后立即可用。我还尝试将脚本放在结束正文标记之前,以确保我可以得到所有内容。

不,$(document).ready事件响应。将脚本作为最后一个元素嵌入 body 只能保证 DOM 结构已经建立。这并不意味着任何元素引用的外部资源已经完成加载——唯一能保证这一点的事件就是load事件。

jQuery 文档明确警告关于组合$(document).ready和“老派”加载事件处理(意思是 body 或 window.onload 上的 onload 属性)——所以你应该使用它.on('load', handler)。但是请注意文档还提到的有关图像的警告。

于 2013-03-26T16:17:27.127 回答