特定のマーカーがクリックされてウィンドウが開いたときに情報ウィンドウを開くためのコードがあります。誰かがクリックされたときに、前のインフォ画面を閉じる方法を誰かが知っていますか?別のマーカーがクリックされたときに情報ウィンドウを閉じる
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map1, marker);
});
特定のマーカーがクリックされてウィンドウが開いたときに情報ウィンドウを開くためのコードがあります。誰かがクリックされたときに、前のインフォ画面を閉じる方法を誰かが知っていますか?別のマーカーがクリックされたときに情報ウィンドウを閉じる
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map1, marker);
});
ちょうどあなたがこれだけのように、グローバルスコープでONE infoWindow
を作成することを確認してください。
infoWindow = new google.maps.InfoWindow; //static infoWindow for all your markers
google.maps.event.addDomListener(window, 'load', function() {
//create your markers here
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map1, marker); //take care with case-sensitiveness
});
});
UPDATE:
はinfoWindow.openにする必要があります.Javascriptでは大文字と小文字が区別されます。 – duncan
それはうまくいかないです。再びすべてのクリックが1つのウィンドウです – user1292656
すべてのマーカーはページロード時に作成されますなぜそれがうまくいかないのでしょうか) – user1292656
infowindow.close()
はオープンインフォウィンドウを閉じる。それはあなたのインフォ画面をどのように作成しているかによって異なります - 全てを扱う1つのインフォウィンドウ変数しか持たないのですか、各マーカーに複数のインフォ画面オブジェクトを作成していますか?この段階でコードをもっと見ることなく、より具体的にするのは難しいです。
はい同じ変数を使用してすべてを処理しています。 – user1292656
別のコードをクリックしたときに前の情報ウィンドウを閉じるには、次のコードが関数initialize()にあることを確認する必要があります。
infoWindow = new google.maps.InfoWindow;
、それはlastOpenedInfoWindowまたは何でもしたい、あなたのJSファイルに名前をグローバル変数を作成し、新しい情報ウィンドウを開く前に、それその閉じた後、現在開いているウィンドウに「lastOpenedInfoWindow」を割り当てるので、
google.maps.event.addListener(marker, 'click', (function(marker, content, infowindow) {
return function() {
closeLastOpenedInfoWindow();
infowindow.setContent(content);
infowindow.open(map, marker);
lastOpenedInfoWindow = infowindow;
};
})(marker, makrerdata[i], infowindow));
}
function closeLastOpenedInfoWindow() {
if (lastOpenedInfoWindow) {
lastOpenedInfoWindow.close();
}
}
に
InfoWindowのインスタンスが1つ(new google.maps.InfoWindow)であることを確認してください。したがって、マーカーがクリックされるたびに、initializeメソッドまたはグローバルに宣言されたInfoWindowのいずれかで宣言されたインスタンスが1つだけ表示されます。
var infoWindow = new google.maps.InfoWindow
このinfoWindowが一度だけインスタンス化されていることを確認してください。それ以外の場合は、マーカーをクリックするたびに複数のウィンドウが開きます。
marker.addListener('click', function() {
infoWindow.setContent(infowincontent);
infoWindow.open(clntLocMap, marker);
});
コードをもっと表示できますか?情報ウィンドウが最初に作成されるのはどこですか? – duncan
可能な複製http://stackoverflow.com/questions/5110956/close-other-infowindows-nicely?rq=1またはhttp://stackoverflow.com/questions/12567280/google-api-v3-multiple-infowindows- + 12567780#12567780 – geocodezip