所以我有以下问题: 我有,我用了不同的操作循环来填充数据的另一个JSON这种方法的getJSON。在该循环中,我尝试获取所有图像文件的尺寸(存储在第一个json中,并使用它们的src),并将它们添加为第二个json中的另一个属性。 为此我使用下面的代码:有道等待所有图像填充数据
$.getJSON("json.txt", function(myJsonData) {
var elemID, elemType, elemURL, thumb, date, menuItem, imgH, imgW;
for (key in myJsonData) {
/*---Some operations for giving values all the variables---*/
//Getting image dimensions
var tempImg = new Image();
tempImg.onload = function() {
imgW = this.width;
imgH = this.height;
console.log(imgW + 'x' + imgH);
loaded += 1;
}
tempImg.src = elemURL;
//Filling the new json
var newJsonData = {
"elemID": 'elemID_' + elemID,
"type": elemType,
"url": elemURL,
"thumbnail": thumb,
"menuItem": menuItem,
"date": date,
"W": imgW,
"H": imgH
}
}
}
之后,我有一个函数生成html代码创建我的页面的DOM。 问题是 - 新JSON没有等待的onload功能,我无法通过图像的尺寸。我正在考虑使用超时或其他方式,但我不确定这是一种好的做法。 :/希望你们能帮忙。
凡'data'定义? – guest271314
您在'for..in'循环中加载**相同的图像**。这是你的意图吗? – hindmost
的数据,而不是尝试使用myJsonData像(在myJsonData键) –