Google Mapsインターフェイスで開いているすべての情報ウィンドウを追跡するのが好きです(名前を配列に保存します)が、「xそれぞれの右上隅にあります。
聞くことができるコールバックはありますか?または、addListener("close", infowindow1, etc
?
ここで見つけた唯一の一貫した解決策は、infoWindow
へのポインターを保持し、それが閉じられたかどうかを検証する必要があるときはいつでもその.getMap()
メソッドをチェックすることです。
これは、別の要素をクリックすると、closeclick
イベントが発生せずに、他の理由でinfoWindowが閉じられる可能性があるためです。
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]ボタンを使用して閉じられたかどうかだけを気にする場合、closeclick
の監視は問題ありません。ただし、それが閉じられた、または閉じられた他の理由があります。
infowindows呼び出し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
});
これを試して:
var closeBtn = $('.gm-style-iw').next();
closeBtn.click(function(){
//other things you want to do when close btn is click
that.infowindow.close();
});
CSSの位置/位置を変更した後、クリックボタンがサファリで機能しないため、このクリック機能を上書きします。