私が持っている Google マップ バージョン 3 は、思い通りに動作しません。マップが開くと、ページ上にいくつかのマーカーがあり、マーカーをクリックまたはホバーすると、ホテルの名前が表示された小さな InfoBox が開きます。別のマーカーをクリックすると、最初の InfoBox が閉じ、新しいマーカーで新しい InfoBox が開きます。この問題は、最後の InfoBox を閉じるときに発生します。
オプションで closeBox を許可すると、InfoBox の残りの部分が閉じられたときに、closeBox (四角形の小さな十字) が画面に残ります。これは、別の InfoBox が開かれたために InfoBox が閉じた場合にのみ発生します。これに対する解決策が見つからないため、closeBox を廃止し、ユーザーがマップの空白の領域をクリックして最終的な InfoBox を削除できるようにするつもりでした。ただし、現時点では、それも機能しません。
問題のページは、 http://www.littlehotels-testdomain.co.uk/spain/abadia.phpで見ることができます(写真のすぐ右にある [このホテルのロケーション マップを表示] をクリックします)。
これを機能させるコードは次のとおりです。
google.maps.event.addListener(hotelmarker, 'mouseover', function() {
var ib = new InfoBox(ibOptions);
boxText.innerHTML = hotelname;
ib.open(map, hotelmarker);
});
google.maps.event.addListener(map, 'click', function() {
ib.close(map, hotelmarker);
});
2 番目のイベント リスナーに欠けているものはありますか?