我尝试使用jQuery Deferred对象在通过Ajax调用将所有图像预先添加到其中之后向左推送div #image_viewer
。
function myFunc() {
return $.Deferred(function(apples) {
for ( j=0; j< otherimages_details.length; j++) {
var otherimage = "<img class='otherimage' title='" + otherimages_details[j][0] + "'" + "src='" + 'user/' + username_cookie + "_albums/" + otherimages_details[j][1] + "'>";
var images = images + image; }
$('#imageviewer_otherimages').prepend(images);
apples.resolve();
}).promise();
}
$.when(myFunc()).then(function() {
var left = ( ($(window).width() - $('#image_viewer').width() - $('#imageviewer_otherimages').width()) / 2 );
$('#image_viewer').css("left", left)});
它无法正常工作。在将所有图像加载到其中之前,#image_viewer
仍然被推送。
答案 0 :(得分:0)
在data = load_data('foo.txt')
print data['.aaa']
apples.resolve();
时,可能无法加载所有图片
尝试在$('#imageviewer_otherimages').prepend(images);
循环中为每个图片创建延迟,使用for
元素的load
事件,在img
处理程序中解析延迟,load
来解析{ {1}}加载所有图片时
注意,不确定$.when.apply
的预期结果?
apples