Google Maps API V3将同一事件列入多个标记数组

时间:2017-03-29 09:06:56

标签: javascript google-maps google-maps-api-3 google-maps-markers

所以基本上我有这样的东西

var arrayOfMarker1 = [...], arrayOfMarker2 = [...], ... arrayOfMarkerN = [...];

我希望使用一个能够关闭当前打开的infoPanel的eventListener来显示最后一次打开的infoPanel,即使它是另一个要点击的数组的标记。

示例:

  • 我打开arrayOfMarker1 infoPanel的标记(我们称之为 marker1
  • 我点击了arrayOfMarker2标记( marker2
  • marker1 的infoPanel已关闭且 marker2 已打开

我发现的唯一的事情是这个

marker.addListener('click', function () {
    infowindow.setContent(this.html);
    infowindow.open(map, this);
});

但它只适用于同一阵列的标记。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要一个全局变量来跟踪上次打开的infoPanel。

var openedInfoWindow = null;
marker.addListener('click', function () {
    if(openedInfoWindow != null)
    {
        openedInfoWindow.close();
    }
    openedInfoWindow = infowindow;
    infowindow.setContent(this.html);
    infowindow.open(map, this);
});