7

Clickで開いたInfoWindowsのマーカーが付いたページがあります。動作しているMouseOverでInfoWindowsを開くことにしました。

しかし、マウスを情報ウィンドウの十字に移動して閉じる必要があることは、インターネットのこれらの怠惰な訪問者にとって少し厳しいことだと思います。そこで、同じく機能しているマーカーのクリックで閉じるイベントを追加しました。

うまくいくとは思えないのは、マーカーの上にマウスオーバーできるようにするためにマウスアウトする代わりに、マーカークリックで情報ウィンドウを再度開くことができるようにすることです。

私のコード:

google.maps.event.addListener(CalMarker, 'mouseover', function() {
    infowindow.setContent(contentStringCal);
    infowindow.open(map,CalMarker);
});
google.maps.event.addListener(CalMarker, 'click', function() {
    infowindow.close(map,CalMarker);
});

マーカーをクリックしてウィンドウを再度開くのを手伝ってくれる人はいますか?

前もって感謝します

PS:投稿の冒頭で「こんにちは」と言うことができません、それは奇妙です。

4

1 に答える 1

10

これを試して:

google.maps.event.addListener(CalMarker, 'mouseover', function() {
    //open the infowindow when it's not open yet
    if(contentStringCal!=infowindow.getContent())
    {
      infowindow.setContent(contentStringCal);
      infowindow.open(map,CalMarker);
    }
});

google.maps.event.addListener(CalMarker, 'click', function() {
    //when the infowindow is open, close it an clear the contents
    if(contentStringCal==infowindow.getContent())
    {
      infowindow.close(map,CalMarker);
      infowindow.setContent('');
    }
    //otherwise trigger mouseover to open the infowindow
    else
    {
      google.maps.event.trigger(CalMarker, 'mouseover');
    }
});

//clear the contents of the infwindow on closeclick
google.maps.event.addListener(infowindow, 'closeclick', function() {
      infowindow.setContent('');
});

デモ: http: //jsfiddle.net/doktormolle/JXqLa/

于 2012-10-26T11:07:19.390 に答える