2012-04-05 12 views
26

私はモバイルウェブアプリケーションを作っています。地図をクリックしてGoogleマップの情報ウィンドウを閉じますか?

いくつかのマーカーがドロップされ、マーカーをクリックすると情報ウィンドウが開きます。 iOSマップアプリのように、マップを承認せずにマップを使用し続けると、これらが消えないということは私を苛立たせます。

ユーザーが基になるマップをクリックすると、開いている情報ウィンドウがすべて閉じられるように設定する方法はありますか?

答えて

31

私は典型的なウェブサイト上でそれを行うが、それは携帯

+1

map.addListener(「クリック」、機能(イベント){...魔法のように –

33

では動作しない任意の理由は、これを試してみてください表示されない

google.maps.event.addListener(map, "click", function(event) { 
    for (var i = 0; i < ibArray.length; i++) { //I assume you have your infoboxes in some array 
     ibArray[i].close(); 
    } 
}); 

そのハンドラ内でイベントと密接infoboxesをクリックさんをマッピングするためのリスナーを追加します:

google.maps.event.addListener(map, "click", function(event) { 
    infowindow.close(); 
}); 

これは非常に簡単です。

+4

これが受け入れ答えなければなりません!作品を作品! –

+1

はい、私は上記に同意しますコメント。 – Pupil

+0

このコードは、マーカーイベントリスナー関数 'google.maps.event.addListener(marker、 'click'、function(){'、}内にある必要があります。ありがとう。 – tinyCoder

5
google.maps.event.addListener(marker, 'click', function() { 
    if(!marker.open){ 
     infoWindow.open(map,marker); 
     marker.open = true; 
    } 
    else{ 
     infoWindow.close(); 
     marker.open = false; 
    } 
    google.maps.event.addListener(map, 'click', function() { 
     infoWindow.close(); 
     marker.open = false; 
    }); 
}); 

また作品完全

+0

これは私のために働く唯一の答えですが、 'infowindow'は 'infoWindow'になっています。 –

関連する問題