我在下面的示例中有一些代码效果很好 - 但是!
当涉及到infowindow时,函数的循环不起作用。您会注意到,如果您点击任一地图图标,则会显示相同的链接“name2”。我需要这个来循环并正确地更改信息,例如:第一个地图标记的“name1”和第二个地图标记的“name2”。
我可能错过了一些简单的东西!?
http://jsfiddle.net/bTujZ/565/
var infowindow = new google.maps.InfoWindow({ content: marker.url });
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,this);
});
由于
答案 0 :(得分:0)
您必须阅读Javascript Closures
与此同时,这是你的小提琴:http://jsfiddle.net/bTujZ/566/
如果您的循环使用匿名(function(){})()
,那么您所要做的就是在内部创建一个闭包。
答案 1 :(得分:0)
对于所有标记,您只使用一个infowindow。
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,this);
});
单击标记时,在代码中,它会在内存中查找信息窗口,这是在循环结束时创建的信息。
因此,您可以看到所有标记的所有相同信息。
如果要查看不同的信息窗口,请在addListenter函数中实例化它。或者,您可以在addListener函数中设置infowindow的infowindow内容。