这看起来很简单,但我找不到解决方案。我有一个带有 KML 和多边形的 Google map 。将鼠标悬停在多边形上会弹出一个信息框。如果用户将鼠标悬停在信息框上,它需要保持打开状态,但如果用户将鼠标悬停在信息框之外,或者如果用户将鼠标悬停在多边形上,则信息框应该关闭。所以听起来很简单,但目前我只能做其中之一。
更新:
下面的内容现在可以工作,但是有点“错误”。这是由于当用户实际上悬停在多边形中心(弹出信息框的位置)时发生“鼠标悬停”功能,脚本认为他们已将光标移出多边形,因为信息框图层加载在顶部。
代码:
// User moves the cursor outside of the active polygon
google.maps.event.addListener(poly,"mouseout",function() {
$poly = this;
$infowindow_hover = false;
$("#geoxml3_infowindow").mouseenter(function(){
clearTimeout($(this).data('timeoutId'));
$infowindow_hover = true;
}).mouseleave(function(){
var someElement = $(this),
timeoutId = setTimeout(function(){
$poly.infoWindow.close();
}, 500);
//set the timeoutId, allowing us to clear this trigger if the mouse comes back over
someElement.data('timeoutId', timeoutId);
});
function closeInfoWindow()
{
if ($infowindow_hover == false) $poly.infoWindow.close();
}
setTimeout(closeInfoWindow, 1000)
});
最佳答案
在关闭信息窗口之前您需要一段延迟。
观察多边形的鼠标悬停/鼠标悬停事件和信息窗口的内容节点。
在那里设置$infowindow_open
变量并运行短暂延迟关闭infoWindow的函数,这样用户就能够在多边形和infowindow之间移动鼠标而无需关闭infowindow。
关于javascript - Google map 多边形悬停 - 在多边形鼠标移开或信息窗口鼠标移出时关闭信息窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25017779/