谷歌地图api - infowindow内容无法正确循环

时间:2014-02-05 01:20:57

标签: javascript google-maps google-api

我在下面的示例中有一些代码效果很好 - 但是!

当涉及到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);
  });

由于

2 个答案:

答案 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内容。