0

我有一张地图和一个标记。当我将鼠标悬停在标记上时,会出现一个信息框。我想要做的是,当我用鼠标(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 回答