我在每次迭代中下载图像。所以逻辑和代码存在于每个迭代器中,逐个下载图像。我希望当所有图像下载完成后,我立即想要调用一个通知用户所有图像下载完成的功能。 请指导我修改现有代码。
这是我的代码
$(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");
}
});
});
答案 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
});