对于相册,我加载了一个文件(通过 ajax),该文件返回我想要显示的图像的 src 数组。它们必须按照 ajax 调用返回的确切顺序显示。
我正在使用其中包含.load()
函数的 for 循环,但这样它就不会同步。如果我在.load()
函数内部输出 i 的值,它不会变为 0、1、3、4 等,而是 0、3、2、4 等。
我的代码的简化版本:
$.get('photostack.php', {album_name:album_name} , function(data) {
var items_count = data.length;
for(var i = 0; i < items_count; ++i){
var item_source = data[i];
var cnt = 0;
$('<img />').load(function(){
var $image = $(this);
++cnt;
console.log(i);
$ps_container.append($image);
}).attr('src',item_source).attr('class',i);
}
},'json');
console.log(i)
现在给出错误的顺序。它应该是完美的上升。
我已经尝试了很多东西。将每个负载延迟 100 毫秒,使用对象作为cnt
/的变量i
等,但它们都不起作用。