加载嵌套图像后查找元素高度的一致方法
我有一个div.body
,其中包含一个img
中的几个元素。
在img
加载后我需要获得div.body
的高度。
我目前正在使用以下方法来衡量:
var $body = $("div.body"); $body.find("img").ready(function(){ var bodyHeight = $body.outerHeight(); });
这会在90%的时间内返回正确的高度,但有时会返回不包括图像高度的高度。
例如,如果div.body
的其他元素总和达到50px
,而我的图像高度为150px
,我需要得到200px
,但有时这只返回50px
。
为什么是这样? 不应该在图像加载后调用.ready()
函数吗?
我应该使用不同的方法吗?
图像可用后,运行此代码的100%一致方法是什么?
.ready()
在加载整个页面的DOM时运行。 你想要.load()
。
请参阅此处的讨论部分,了解适用于动态添加内容的实现。
根据jQuery的文档,有一些注意事项可以将load事件与图像一起使用。
看看这里:
加载图像的jQuery事件
和这里: