检测映射何时结束以及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+”])。附加(“”); }
我使用data.map循环浏览产品列表,并为每个产品调用函数markAvailable。当这个过程结束时,当data.map循环结束时,有没有办法执行一些代码?理想情况下,我希望在附加后加载所有图像时执行代码。如果您想等待图像加载然后试试看检测映射何时结束以及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
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);
});