【发布时间】:2015-05-03 10:47:48
【问题描述】:
我有一个工作部分的 google maps javascript,我确实遇到了问题。
现在我遇到的问题是只显示了一个信息窗口,最后一个。我在另一个有效的堆栈线程上找到了解决方案。但我真的不知道为什么。我对 Javascript 还很陌生,所以我希望有人可以向我解释发生了什么变化以及如何变化。
这是工作代码:
function setMarkers(map, locations){
for(var i = 0; i < locations.length; i++){
var marker = locations[i];
var latLng = new google.maps.LatLng(locations[i][1], locations[i][2]);
var content = locations[i][0];
var infowindow = new google.maps.InfoWindow();
marker = new google.maps.Marker({
position:latLng,
map: map
});
google.maps.event.addListener(marker, 'click', function(content){
return function(){
infowindow.setContent(content);
infowindow.open(map, this);
}
}(content));
}
}
这是原始的损坏代码(我将仅粘贴更改的代码):
google.maps.event.addListener(marker, 'click', function(){
infowindow.setContent(content);
infowindow.open(map, marker);
});
现在我想知道的是:
return fn 的作用是什么,以及
-
在
李>addListener(}(content));)末尾添加的(content)有什么作用,因为据我所知,内容已在setContent属性中设置。
谢谢!
【问题讨论】:
-
感谢您的编辑,让您的眼睛更轻松。堆栈格式对我来说还是有点新鲜。
-
你可能想改变你的问题的标题,它看起来太笼统了。
标签: javascript google-maps-api-3