检测映射何时结束以及imgs何时加载jquery var xhr=$.ajax({ 键入:“GET”, url:url, async:false, JSONPCCallback:'jsonCallback', contentType:“应用程序/json”, 数据类型:“jsonp”, 成功:函数(json、responseText、req){ if(typeof json.data!=“未定义”){ json.data.map(函数(产品){ markAvailable(产品,lookRequestId); }); }否则{ //log(“请求成功,但阵列中没有产品”); } }); 功能标记可用(产品,lookRequestId){ $(“.qv覆盖容器-”+lookRequestId+”[data product pid thumb=“+product.id+”])。附加(“”); }

检测映射何时结束以及imgs何时加载jquery var xhr=$.ajax({ 键入:“GET”, url:url, async:false, JSONPCCallback:'jsonCallback', contentType:“应用程序/json”, 数据类型:“jsonp”, 成功:函数(json、responseText、req){ if(typeof json.data!=“未定义”){ json.data.map(函数(产品){ markAvailable(产品,lookRequestId); }); }否则{ //log(“请求成功,但阵列中没有产品”); } }); 功能标记可用(产品,lookRequestId){ $(“.qv覆盖容器-”+lookRequestId+”[data product pid thumb=“+product.id+”])。附加(“”); },jquery,Jquery,我使用data.map循环浏览产品列表,并为每个产品调用函数markAvailable。当这个过程结束时,当data.map循环结束时,有没有办法执行一些代码?理想情况下,我希望在附加后加载所有图像时执行代码。如果您想等待图像加载然后试试看 var xhr = $.ajax({ type: 'GET', url: url, async: false, jsonpCallback: 'jsonCallback', contentType: "applica

我使用data.map循环浏览产品列表,并为每个产品调用函数markAvailable。当这个过程结束时,当data.map循环结束时,有没有办法执行一些代码?理想情况下,我希望在附加后加载所有图像时执行代码。

如果您想等待图像加载然后试试看

 var xhr = $.ajax({
    type: 'GET',
    url: url,
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(json, responseText, req) {
    if (typeof json.data != "undefined") {
        json.data.map(function(product) {
          markAvailable(product, lookRequestId);
        });
      } else {
        //console.log("successfull request but no products in array");
      } 
});



function markAvailable(product, lookRequestId) {
   $(".qv-overlay-container-" + lookRequestId + " [data-product-pid-thumb=" + product.id + "]").append('<img src='+product.image_groups[0].images[0].link+' />');
}
var xhr=$.ajax({
键入:“GET”,
url:url,
async:false,
JSONPCCallback:'jsonCallback',
contentType:“应用程序/json”,
数据类型:“jsonp”,
成功:函数(json、responseText、req){
if(typeof json.data!=“未定义”){
var promises=json.data.map(函数(产品){
返回可用标记(产品,lookRequestId);
});
$.when.apply($,promises).then(函数(){
//在这里做你的事
})
}否则{
//log(“请求成功,但阵列中没有产品”);
}
})
});
功能标记可用(产品,lookRequestId){
var deferred=$.deferred();
var$img=$(“”).appendTo(“.qv覆盖容器-”+lookRequestId+”[data-product-pid-thumb=“+product.id+”]);
$img.on('load error',function(){
延迟。解决();
})
延迟返回。承诺();
}

您可以使用以下方法检查最后一项:

var xhr = $.ajax({
    type: 'GET',
    url: url,
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function (json, responseText, req) {
        if (typeof json.data != "undefined") {
            var promises = json.data.map(function (product) {
                return markAvailable(product, lookRequestId);
            });
            $.when.apply($, promises).then(function () {
                //do your stuff here
            })
        } else {
            //console.log("successfull request but no products in array");
        }
    })
});

function markAvailable(product, lookRequestId) {
    var deferred = $.Deferred();
    var $img = $('<img src=' + product.image_groups[0].images[0].link + ' />').appendTo(".qv-overlay-container-" + lookRequestId + " [data-product-pid-thumb=" + product.id + "]");
    $img.on('load error', function () {
        deferred.resolve();
    })
    return deferred.promise();
}

是否有方法检查所有IMG是否也已加载?是否有方法检查所有IMG是否也已加载?
json.data.map(function(product, idx) {
    if ( idx == json.data.length ){
       //your job here
    }
    markAvailable(product, lookRequestId);
});