我有一个函数resizePreview()
,如果图像太大,它将在jQuery对话框中调整图像大小。用户可以更改此图像。我的代码是这样的:
$('#imagePreview').attr('src', newImageSrc);
resizePreview();
resizePreview()
使用$('#imagePreview').width()
和.height()
来获取尺寸并相应调整大小。问题是在调用resizePreview()
时未加载新图像,因此根据图像的原始尺寸调整图像大小,而不是根据新加载图像的尺寸。
如果我在两行代码之间进行alert()
调用,则可以正常工作(因为警报会给浏览器足够的时间来加载新图像)。显然我应该使用一个活动?是否存在现有事件,或者我是否可以制作一个事件,因为当图像src发生变化时(有点像onChange事件,但对于该属性)或新图像何时完成加载?谢谢你的时间。
答案 0 :(得分:17)
load
事件适用于图片:
$('img.userIcon').on('load', function () {
$(this).toggleClass( 'bigImg', $(this).height() > 100 );
});
答案 1 :(得分:5)
图像对象允许附加onload事件侦听器:
var img = new Image;
img.onload = function () {
alert("Loaded");
};
img.src = "dummy-picture.png";