所有图像下载完成后触发功能

时间:2011-12-23 10:32:55

标签: jquery

我在每次迭代中下载图像。所以逻辑和代码存在于每个迭代器中,逐个下载图像。我希望当所有图像下载完成后,我立即想要调用一个通知用户所有图像下载完成的功能。 请指导我修改现有代码。

这是我的代码

$(document).ready(function () {
$("table[id*=dgImages] img").each(function () {
if($(this).offset().top > $(window).scrollTop() && $(this).offset().top < $(window).scrollTop() + $(window).height()) {


$(this).attr("src", $(this).attr("original"));
$(this).removeAttr("original");
}
});
});

1 个答案:

答案 0 :(得分:1)

jQuery将对象推迟到救援对象:

var def = [];                  // an array to store deferred objects

$('img').each(function() {     // for each image
   var d = $.Deferred();       // create a new deferred object
   def.push(d);                // store it in the array for later
   $(this).load(d.resolve);    // and on load, "resolve" it
});

$.when.apply($, def)           // $.when(def[0], def[1], ...);
.then(function() {             // are all resolved, then
    alert("all loaded!");      // do your stuff here
});