json ファイルを読み込んで、Javascript の配列に解析しています。要素の 1 つはイメージへのパスです。まだ画像を読み込む準備ができていませんが、画像の高さを取得する必要があります。次のようなコードでそれを行う方法を知っています(他の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++;
});
関数を一度呼び出すと、機能します。しかし、ループで呼び出すことはできません。どうすればこれを修正できますか?