通过Ajax附加srcset图像时如何检查

时间:2019-07-10 15:21:29

标签: javascript ajax image callback srcset

我通过Ajax将php页的文本和图像附加到容器中,并在所有图像加载后显示出来。如果我仅使用src,而不能使用srcset,则此方法非常有效。

到目前为止,我正在使用此代码段来检查是否已加载所有带有src标签的ajax图像。但是,当然,它实际上不起作用,因为它正在检查src而不是srcset。

$.fn.imagesLoaded = function () {
    var $imgs = this.find('img[src!=""]');

    if (!$imgs.length) {
        return $.Deferred().resolve().promise();
    }

    var dfds = [];  

    $imgs.each(function(){
        var dfd = $.Deferred();
        dfds.push(dfd);

        var img = new Image();

        img.onload = function(){
            dfd.resolve();
        }

        img.onerror = function(){
            dfd.resolve();
        }

        img.src = this.src;

    });

    return $.when.apply($,dfds);
}

这是我的Ajax代码:

$.ajax({
    cache: false,
    url: "somefile.php",
    success: function(data) {
        $("body").prepend(data).imagesLoaded().then(function(){
           // show the images etc.
        })
)}

预期结果应该是,检查是否已加载所有映像,并且不仅应与src一起使用,而且应与srcset一起使用。实际结果是,它只是不尊重imagesLoaded()。

0 个答案:

没有答案