将事件监听器添加到infowindow Google Maps v3

时间:2016-10-19 12:28:14

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

我尝试为Info Window添加一些监听器,如:

//works
google.maps.event.addListener(markerInfoWindow, "closeclick", function()
{
    console.log('trigger close');
});

//doesn't work
google.maps.event.addListener(markerInfoWindow, "click", function()
{
    console.log('trigger close');
});

在我错过的文档中是否有infoWindow的事件列表,还是有其他方法可以完成任务?

实际上,问题是我想创建一个事件监听器来关闭mouseout上的infoWindow

google.maps.event.addListener(markerInfoWindow, 'mouseout', function(){
    console.log('trigger close');
    self._setInfoWndClosed();
});

self._setInfoWndClosed()closeclick事件的上下文中正常运行。我最终发现实际上听众本身并不起作用。

2 个答案:

答案 0 :(得分:3)

InfoWindow没有记录“click”或“mouseover”事件:唯一的documented events on an google.maps.InfoWindow(目前)是:

  

<强>事件

     

closeclick 参数:无

     

单击关闭按钮时会触发此事件。

     

content_changed 参数:无

     

当内容属性更改时会触发此事件。

     

domready 参数:无

     

当包含InfoWindow的内容附加到DOM时会触发此事件。如果要动态构建信息窗口内容,您可能希望监视此事件。

     

position_changed 参数:无

     

当position属性发生变化时会触发此事件。

     

zindex_changed 参数:无

     

当InfoWindow的zIndex发生更改时会触发此事件。

您可以在InfoWindow的内容上添加“click”和“mouseover”事件的侦听器。

答案 1 :(得分:0)

此链接显示:

https://gist.github.com/thebouv/38f91f81675aad85f15d

您可以将“ domready”事件侦听器添加到您的信息窗口。一旦进入回调,您就可以通过id(使用标准的“ addEventListener”)将事件监听器附加到任何信息窗口元素上。 “ onclick”方法要好得多,但由于我正在使用react,因此在我的情况下效果不佳。