我正在使用事件click
和closeclick
使用方法panTo()
和setZoom()
设置不同的值。
因此,当用户点击地图标记时,它将平移到该标记并放大。此部分正常工作。然后,当infowindow关闭时,我希望它缩小并平移到原始位置(不工作)。
这两个事件在我的代码中似乎有冲突,所以我是否需要使用clearListeners
来解决这个冲突?以下是相关代码:
function setInfoWindow(mapRef, mapSettings, mapMarker, markerInfoWindow)
{
// event listener for infowindow of each map marker, onclick
google.maps.event.addListener(mapMarker, "click", function()
{
markerInfoWindow.open(mapRef, this);
mapRef.panTo(this.position);
mapRef.setZoom(3);
});
//
google.maps.event.addListener(mapMarker, "closeclick", function()
{
mapRef.panTo(mapSettings.center);
mapRef.setZoom(2);
});
} // end of function setInfoWindow
答案 0 :(得分:4)
这种情况正在发生,因为您没有在infoWindow上监听关闭事件,而是将其设置为标记。只需将代码中的mapMarker
更改为markerInfoWindow
:
google.maps.event.addListener(markerInfoWindow, "closeclick", function()
{
mapRef.panTo(mapSettings.center);
mapRef.setZoom(2);
});
一旦infoWindow关闭,这将触发:https://developers.google.com/maps/documentation/javascript/reference#InfoWindow向下滚动到Events,查看可以在infoWindow上添加监听器的其他事件。