//封装一个deferred对象
    function loadImage(img){
        return $.Deferred(function(deferred){
            img.load = function(){
                deferred.resolve(img)
            }
            img.error = function(){
                deferred.reject(img)
            }
            //如果已经加载完成
            if(img.complete){
                deferred.resolve(img)
            }
        })
    }
    
    
    //所有图片都加载完成后调用
    var deferreds = $('img').map(function(index,ele){
        return loadImage(ele)
    })
    $.when.apply($,deferreds).always(function(){
        //所有图片都处理完成(成功加载或者有失败)
        do_something_awesome();
    })
%60%60%60javascript%0A%20%20%20%20%2F%2F%E5%B0%81%E8%A3%85%E4%B8%80%E4%B8%AAdeferred%E5%AF%B9%E8%B1%A1%0A%20%20%20%20function%20loadImage(img)%7B%0A%20%20%20%20%20%20%20%20return%20%24.Deferred(function(deferred)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20img.load%20%3D%20function()%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20deferred.resolve(img)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20img.error%20%3D%20function()%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20deferred.reject(img)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%A6%82%E6%9E%9C%E5%B7%B2%E7%BB%8F%E5%8A%A0%E8%BD%BD%E5%AE%8C%E6%88%90%0A%20%20%20%20%20%20%20%20%20%20%20%20if(img.complete)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20deferred.resolve(img)%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%2F%2F%E6%89%80%E6%9C%89%E5%9B%BE%E7%89%87%E9%83%BD%E5%8A%A0%E8%BD%BD%E5%AE%8C%E6%88%90%E5%90%8E%E8%B0%83%E7%94%A8%0A%20%20%20%20var%20deferreds%20%3D%20%24('img').map(function(index%2Cele)%7B%0A%20%20%20%20%20%20%20%20return%20loadImage(ele)%0A%20%20%20%20%7D)%0A%20%20%20%20%24.when.apply(%24%2Cdeferreds).always(function()%7B%0A%20%20%20%20%20%20%20%20%2F%2F%E6%89%80%E6%9C%89%E5%9B%BE%E7%89%87%E9%83%BD%E5%A4%84%E7%90%86%E5%AE%8C%E6%88%90%EF%BC%88%E6%88%90%E5%8A%9F%E5%8A%A0%E8%BD%BD%E6%88%96%E8%80%85%E6%9C%89%E5%A4%B1%E8%B4%A5%EF%BC%89%0A%20%20%20%20%20%20%20%20do_something_awesome()%3B%0A%20%20%20%20%7D)%3B%0A%60%60%60%0A%0A%0A%0A

使用jquery的defer来实现所有图片都加载完成后执行某个操作

2019-02-16 23:18:34 0 48
这里是评论

相关推荐