jQuery推迟不工作

时间:2015-09-20 03:20:52

标签: jquery deferred .when

我尝试使用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仍然被推送。

1 个答案:

答案 0 :(得分:0)

data = load_data('foo.txt') print data['.aaa']

之后调用apples.resolve();时,可能无法加载所有图片

尝试在$('#imageviewer_otherimages').prepend(images);循环中为每个图片创建延迟,使用for元素的load事件,在img处理程序中解析延迟,load来解析{ {1}}加载所有图片时

注意,不确定$.when.apply的预期结果?

apples