我使用“ body onload”通过php和mysql获取Google地图标记。所有标记都有使用“鼠标悬停”来打开它们的信息窗口:
google.maps.event.addListener(markerComm, 'mouseover', function () {
infoWindow.setContent(markerDetails);
infoWindow.open(map, markerComm);
});
在桌面模式下,无论标记数量如何,鼠标悬停都会始终打开信息窗口。但是,在移动模式下,仅当有很多标记(例如20+)时,点击标记才会打开信息窗口。
当只有几个FEW标记并且使用Chrome开发者工具从移动模式切换到桌面模式而又不刷新页面时,会发生以下情况:
刷新页面并在桌面模式下启动时,偶尔会发生异常。有时,当切换到移动模式时,点击信息窗口会打开,但是我很少能做到这一点。
观看控制台日志,这似乎是某种计时问题。我尝试将函数从onload移到推迟外部js文件(在头部和标签之前),但都没有帮助。
关于这种情况为什么发生或如何纠正的任何想法?预先感谢!
答案 0 :(得分:0)
我添加了一个点击侦听器,它现在可以在移动设备上正常运行:
google.maps.event.addListener(markerComm, 'mouseover', function () {
infoWindow.setContent(markerDetails);
infoWindow.open(map, markerComm);
});
google.maps.event.addListener(markerComm, 'click', function () {
infoWindow.setContent(markerDetails);
infoWindow.open(map, markerComm);
});
我曾经尝试过以这种方式添加点击,但这种方式不起作用:
google.maps.event.addListener(markerComm, 'click mouseover', function () {
答案 1 :(得分:0)
我发现我需要做的就是更改 acfmap.js 文件中的一行:
原文:
google.maps.event.addListener(marker, 'mouseover', function() {
新:
google.maps.event.addListener(marker, 'click', function() {
刚刚将鼠标悬停更改为单击,因此它可以在移动设备和桌面设备上运行。