我正在加载一个 json 文件并将其解析为 Javascript 中的数组。其中一个元素是图像的路径。我还没有准备好加载图像,但我需要获取图像的高度。我知道如何使用以下代码来做到这一点(在其他 stackoverflow 页面上找到)
function getimageheight(img) {
var tmpImg = new Image();
tmpImg.onload = function() {
var ht = this.height;
return ht+0;
}
tmpImg.src = img;
}
如果我尝试在循环中调用此函数,它会返回 undefined,因为图像的加载运行速度比循环慢。我的实际代码是这样的:
var j = 0;
$.each(cat.placemarks, function(index, mark) {
markers[cat.name][j] = [];
markers[cat.name][j].name = mark.name;
markers[cat.name][j].title = mark.title;
markers[cat.name][j].markerURL = mark.markerURL;
markers[cat.name][j].imageURL = mark.imageURL;
markers[cat.name][j].imageHEIGHT = getimageheight(projpath+mark.imageURL);
j++;
});
如果我调用该函数一次,它就可以工作。但是在循环中调用它不会。我怎样才能解决这个问题?