我有一些Google Maps JS在地圖上繪製了許多標記。但是,當加載標記時,我發現圖像沒有及時加載,所以標記沒有放置。 爲了解決這個問題我修改函數返回的地圖標記如下:JavaScript img onLoad和closures - 爲什麼這段代碼會觸發一個無限循環?
function newGoogleMapPin(type){
var imgpath = "img/gmapicons/"+type+".png";
var img = new Image();
img.src = imgpath;
var imgloaded = false;
while(imgloaded == false) {
img.onload = function() {
imgloaded = true;
}
}
return new google.maps.MarkerImage(imgpath, new google.maps.Size(img.width, img.height));
}
問題的存在是imgloaded
永遠不會設置爲true
, 我誤解倒閉? (我猜是這樣!)
有一個未使用的變量'imloaded',錯了嗎? – 2010-08-12 14:54:06
是的,應該已經imgloaded :) – Sergio 2010-08-12 16:27:24