图像'src'属性更改时的JavaScript事件?

时间:2009-08-18 15:49:32

标签: javascript jquery javascript-events

我有一个函数resizePreview(),如果图像太大,它将在jQuery对话框中调整图像大小。用户可以更改此图像。我的代码是这样的:

$('#imagePreview').attr('src', newImageSrc);
resizePreview();

resizePreview()使用$('#imagePreview').width().height()来获取尺寸并相应调整大小。问题是在调用resizePreview()时未加载新图像,因此根据图像的原始尺寸调整图像大小,而不是根据新加载图像的尺寸。

如果我在两行代码之间进行alert()调用,则可以正常工作(因为警报会给浏览器足够的时间来加载新图像)。显然我应该使用一个活动?是否存在现有事件,或者我是否可以制作一个事件,因为当图像src发生变化时(有点像onChange事件,但对于该属性)或新图像何时完成加载?谢谢你的时间。

2 个答案:

答案 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";