Google 映射 API V3 对多个标记数组的相同事件侦听器
Google Maps API V3 same event lister to multiple arrays of markers
所以基本上我有这样的东西
var arrayOfMarker1 = [...], arrayOfMarker2 = [...], ... arrayOfMarkerN = [...];
并且我想使用一个能够关闭当前打开的 infoPanel 的 eventListener 来显示上次单击的信息面板,即使它是要单击的另一个数组的标记。
示例:
- 我打开 arrayOfMarker1 infoPanel 的标记(我们称它为 marker1)
- 我点击 arrayOfMarker2 标记 (marker2)
- marker1 的信息面板已关闭,marker2 的信息面板已打开
我唯一找到的就是这个
marker.addListener('click', function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
但它只适用于同一数组的标记。有什么办法吗?
您需要一个全局变量来跟踪最后打开的信息面板。
var openedInfoWindow = null;
marker.addListener('click', function () {
if(openedInfoWindow != null)
{
openedInfoWindow.close();
}
openedInfoWindow = infowindow;
infowindow.setContent(this.html);
infowindow.open(map, this);
});
所以基本上我有这样的东西
var arrayOfMarker1 = [...], arrayOfMarker2 = [...], ... arrayOfMarkerN = [...];
并且我想使用一个能够关闭当前打开的 infoPanel 的 eventListener 来显示上次单击的信息面板,即使它是要单击的另一个数组的标记。
示例:
- 我打开 arrayOfMarker1 infoPanel 的标记(我们称它为 marker1)
- 我点击 arrayOfMarker2 标记 (marker2)
- marker1 的信息面板已关闭,marker2 的信息面板已打开
我唯一找到的就是这个
marker.addListener('click', function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
但它只适用于同一数组的标记。有什么办法吗?
您需要一个全局变量来跟踪最后打开的信息面板。
var openedInfoWindow = null;
marker.addListener('click', function () {
if(openedInfoWindow != null)
{
openedInfoWindow.close();
}
openedInfoWindow = infowindow;
infowindow.setContent(this.html);
infowindow.open(map, this);
});