看来,由于某种原因.load
方法不起作用。在这里我的jquery:动态加载的图像返回0的外部高度(jQuery)
$(document).ready(function() {
var imgHeight;
$('body').prepend('<img src="http://farm9.staticflickr.com/8266/8653931785_4a8d43164f.jpg" class="select" />');
if($('img.select').prop('complete')) {
imgHeight = $('img.select').outerHeight();
}else{
$('img.select').load(function() {
imgHeight = $('img.select').outerHeight();
});
}
$('body').prepend('<p>Image Height: ' + imgHeight + '</p>');
});
和一个jsfiddle
链接的例子运行之后几次(我假设图像缓存),它会成功找回正确的高度。这告诉我if($('img.select').prop('complete'))
工作正常。
我在这里错过了什么?
(在Chrome和FF测试)
编辑: 好了,现在,如果我想,如果他们被加载,检查不止一个形象是什么? $('img.select').prop('complete')
只测试匹配选择器的第一个元素。 http://jsfiddle.net/hcarleton/2Dx5t/6/
谢谢,现在有道理。 –
load()这里用来使用回调函数来绑定事件,而不是函数。你有异步函数.load(),但它有一个不同的sig。 –
也发现load()事件处理程序自jquery 1.8开始已弃用。我会更新我的答案。 – cfs