Как проверить, были ли загружены изображения srcset при добавлении их через Ajax - PullRequest
0 голосов
/ 10 июля 2019

Я добавляю текст и изображения php-страницы через Ajax в контейнер и показываю его после загрузки всех изображений. Это прекрасно работает, если я использую только src, но не если я использую srcset.

Пока что я использую этот фрагмент кода, чтобы проверить, все ли ajaxed src-тегированные изображения были загружены. Но, конечно, он на самом деле не работает, потому что он проверяет 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.
        })
)}

Ожидаемый результат должен состоять в том, что проверка, все ли изображения были загружены, должна также работать с srcset, а не только с src. Фактический результат заключается в том, что он просто не уважает imagesLoaded ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...