Google Maps API v3 infowindowclosures事件/callback?

我喜欢跟踪任何和所有在Google Maps界面上打开的infowindows(我将它们的名字存储在一个数组中),但是我不知道如何通过“x “在每个人的右上angular。

有什么callback我可以听吗? 或者,也许我可以做一些像addListener("close", infowindow1, etc

有一个事件closeclick调用closeclick可以帮助你

 var currentMark; var infoWindow = new google.maps.InfoWindow({ content: 'im an info windows' }); google.maps.event.addListener(marker, 'click', function () { infoWindow.open(map, this); currentMark = this; }); google.maps.event.addListener(infoWindow,'closeclick',function(){ currentMark.setMap(null); //removes the marker // then, remove the infowindows name from the array }); 

我在这里find的唯一一致的解决scheme是保留一个指向infoWindow的指针,并在需要validation是否已closures时检查其.getMap()方法。

原因是,点击另一个元素可能会导致infoWindow由于其他原因被解雇…没有closeclick事件触发。

 var infoWindow = new google.maps.InfoWindow({ content: 'Something to put here.' }); infoWindow.open(map, infoWindow); setInterval(function () { console.log("infoWindow is bound to map: "+(infoWindow.getMap() ? true : false)); }, 1000); 

…如果你从字面上只关心infoWindow是否使用“X”buttonclosures,那么监视closeclick是好的。 但是,还有其他原因可能已经closures了。

尝试这个:

 var closeBtn = $('.gm-style-iw').next(); closeBtn.click(function(){ //other things you want to do when close btn is click that.infowindow.close(); }); 

我覆盖这个点击function,因为点击button不能在safari中工作,我改变了它的CSS /位置。