我有一些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