ユーザーがアドレスにカーソルを合わせたときに、マーカーで mouseover イベントを呼び出そうとしています。新しい情報ウィンドウを開くと、最後の情報ウィンドウを閉じる必要がありますが、開始方法がわかりません。このページを開く:
http://fiddle.jshell.net/spYYh/12/
助けてください!ありがとう!
ユーザーがアドレスにカーソルを合わせたときに、マーカーで mouseover イベントを呼び出そうとしています。新しい情報ウィンドウを開くと、最後の情報ウィンドウを閉じる必要がありますが、開始方法がわかりません。このページを開く:
http://fiddle.jshell.net/spYYh/12/
助けてください!ありがとう!
この質問は、Google Maps API v3: Close infowindow when DOM element is clicked に似ているため、回答が適用されます。
主な違いは、参照の質問と回答で言及されているイベント"mouseover"
ではなく、マウス オーバー イベントを検出することです。"click"
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
});
問題が複数のマーカーを提供していることは問題ではありません。できるよ:-
var infowindow = null;
.
.
.
/* now inside your initialise function */
infowindow = new google.maps.InfoWindow({
content: "holding..."
});
for (var i = 0; i < markers.length; i++) {
var marker = markers[i];
google.maps.event.addListener(marker, 'mouseover', function() {
//open the infowindow when it's not open yet
if(contentStringCal!=infowindow.getContent())
{
infowindow.setContent(contentStringCal);
infowindow.open(map, marker);
}
});
google.maps.event.addListener(marker, 'click', function() {
//when the infowindow is open, close it an clear the contents
if(contentStringCal==infowindow.getContent())
{
infowindow.close(map, marker);
infowindow.setContent('');
}
//otherwise trigger mouseover to open the infowindow
else
{
google.maps.event.trigger(marker, 'mouseover');
}
});
//clear the contents of the infwindow on closeclick
google.maps.event.addListener(infowindow, 'closeclick', function() {
infowindow.setContent('');
});
}