本文介绍了我想。当$函数使用image.onload的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我加载图像内loop.I动态有一定的要求,使得
在以下code当我加载图像,然后再只消防警报和警报,然后1的火灾时,然后只警告2火灾。
我的code是
的for(int i = 0;我小于5;我++)
{
$。当(函数(){ VAR img771 =新的图像(); img771.src = imggg [I]
img771.onload =功能(){
警报(1);
//图像变装之后再然后只警告2火灾完成的功能。
}
}).done(函数(){
警报(2); });
}
解决方案
图像加载转换成(jQuery的)承诺,请使用:
函数imageLoad(URL){
返回$ .Deferred(功能(DEF){
VAR IMG =新的图像();
img.onload =功能(){
def.resolve(IMG);
};
img.src =网址;
});
}
您可以创建承诺的数组,你的图像:
VAR承诺= imggg.map(imageLoad);
,然后传递到 $当
:
$。when.apply($,承诺)。然后(函数(){
的console.log(加载的所有图像);
});
I am loading images dynamic inside loop.I have some requirement such that in following code when I am loading image then and then only alert fire and when alert 1 fires then and then only alert 2 fire.
My code is
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");
});
}
解决方案
To convert image loading into a (jQuery) promise, use:
function imageLoad(url) {
return $.Deferred(function(def) {
var img = new Image();
img.onload = function() {
def.resolve(img);
};
img.src = url;
});
}
You can then create an array of Promises for your images:
var promises = imggg.map(imageLoad);
and then pass that to $.when
:
$.when.apply($, promises).then(function() {
console.log("all images loaded");
});
这篇关于我想。当$函数使用image.onload的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!