我在循环中加载动态图像。我有一些要求 在下面的代码中,当我加载图像然后然后只警报火,当警报1点火然后只警报2火。
我的代码是
for(int i=0;i<5;i++)
{
$.when(function(){
var img771 = new Image();
img771.src = imggg[i];
img771.onload=function(){
alert("1");
//after image becomes loaded then and then only alert 2 fires in Done functionality.
}
} ).done(function () {
alert("2");
});
}
答案 0 :(得分:1)
要将图像加载转换为(jQuery)承诺,请使用:
function imageLoad(url) {
return $.Deferred(function(def) {
var img = new Image();
img.onload = function() {
def.resolve(img);
};
img.src = url;
});
}
然后,您可以为图像创建一个Promise数组:
var promises = imggg.map(imageLoad);
然后将其传递给$.when
:
$.when.apply($, promises).then(function() {
console.log("all images loaded");
});