6

特定のマーカーがクリックされてウィンドウが開いたときに情報ウィンドウを開くための次のコードがあります。別の情報ウィンドウがクリックされたときに前の情報ウィンドウを閉じる方法を知っている人はいますか?

   google.maps.event.addListener(marker, 'click', function() {
            infowindow.open(map1, marker);
        });
4

7 に答える 7

15

infoWindow次のように、グローバル スコープで1 つだけ作成するようにしてください。

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
          });
});

更新

  • Duncan によって発見された大文字と小文字の区別を修正します。
  • マーカーの作成後、両方ともページ読み込みイベント内でマーカー クリック ハンドラーを接続する必要があることを示します。
于 2012-09-27T12:39:36.430 に答える
1

infowindow.close()開いている情報ウィンドウを閉じます。ただし、インフォウィンドウの作成方法によって異なります。すべてを処理するインフォウィンドウ変数は1つだけですか、それともマーカーごとに複数のインフォウィンドウオブジェクトを作成していますか。この段階でコードをもっと見ることなく、より具体的にするのは難しいです。

于 2012-09-27T12:36:53.973 に答える
-2

別の情報ウィンドウがクリックされたときに前の情報ウィンドウを閉じるには、次のコードが関数 initialize() ループ内にあることを確認する必要があります。

infoWindow = 新しい google.maps.InfoWindow;

于 2013-03-02T17:08:14.047 に答える