0

その上に 1 つのマップと 1 つのマーカーがあります。マーカーの上にマウスを置くと、インフォボックスが表示されます。私がやりたいことは、マウスを離す (mouseout) ときにインフォボックスが消えるようにすることですが、マウスがインフォボックスの上に移動しなかった場合に限ります。マウスがインフォボックスの上に移動した場合、インフォボックスのマウスを移動するまでインフォボックスを表示したままにします。

そのため、マウスがマーカーまたはインフォボックス上にある限り、それは表示されている必要があり、それらを離れるとインフォボックスは消えなければなりません。

前もって感謝します

4

1 に答える 1

4

実際には非常に簡単です。

  • マウス イベント ハンドラをmarker
  • domreadyイベントハンドラをinfowindow
  • div内部に を作成し、infowindowそれにマウス イベント ハンドラーをアタッチします。

私がしたこと:

  • infowindowマウスが上にない限り、数秒後に閉じるタイマーを追加しました

いくつかのコード:

google.maps.event.addListener(marker, 'mouseover', function () {
    infowindow.open(map, marker)
});

google.maps.event.addListener(marker, 'mouseout', function () {
    t = setTimeout(function () {
        infowindow.close()
    }, 3000);
});

google.maps.event.addListener(infowindow, 'domready', function () {
    $('#infodiv').on('mouseenter', function () {
        clearTimeout(t);
    }).on('mouseleave', function () {
        t = setTimeout(function () {
            infowindow.close()
        }, 1000);
    })
});

ここで動作することを確認してください:http://jsfiddle.net/RASG/vA4eQ/

于 2012-11-06T17:16:04.960 に答える