1

我有一个div.body包含img更多元素的其中一个。

我需要获取加载div.body后的高度。img

我目前正在使用以下方法进行测量:

var $body = $("div.body");
$body.find("img").ready(function(){
   var bodyHeight = $body.outerHeight();
});

这会在 90% 的情况下返回正确的高度,但有时它会返回不包括图像高度的高度。


例如,如果其他元素的div.body总和为50px,并且我的图像的高度为150px,我需要得到200px,但有时这只是返回50px


为什么是这样?不应该.ready()只在图像加载后调用该函数吗?

我应该使用不同的方法吗?

一旦图像可用,运行此代码的 100% 一致方式是什么?

4

2 回答 2

3

.ready()加载整个页面的 DOM 时运行。你想要.load()

有关适用于动态添加内容的实现,请参见此处的讨论部分。

于 2012-11-21T09:19:44.707 回答
0

根据 jQuery 的文档,将加载事件与图像一起使用有许多注意事项。

看看这里:

加载图像的 jQuery 事件

和这里:

https://github.com/desandro/imagesloaded

于 2012-11-21T09:21:19.193 回答