Google Map InfoWindow不会始终在移动模式下打开,但始终以桌面模式打开

问题描述 投票:-1回答:1

我使用“body onload”来使用php和mysql获取Google地图标记。所有标记都有信息窗口,使用“鼠标悬停”打开它们:

    google.maps.event.addListener(markerComm, 'mouseover', function () {
        infoWindow.setContent(markerDetails);
        infoWindow.open(map, markerComm);
    });

在桌面模式下,无论标记的数量如何,鼠标悬停都将始终打开信息窗口。但是,在移动模式下,如果有许多标记,例如20+,则点按标记只会打开信息窗口。

以下是仅使用FEW标记时以及使用Chrome开发者工具在不刷新页面时从移动设备切换到桌面模式时会发生的情况:

  • 信息窗口始终在桌面模式下正常打开。
  • 切换到移动模式时,信息窗口在点击时不会打开。
  • 切换回桌面模式,它们再次正常打开。
  • 在模式之间来回切换多次:始终在桌面上工作,但不在移动设备中工作。
  • 在桌面模式下打开信息窗口时,我切换到移动模式,信息窗口仍然打开,但可以通过点击“x”关闭它。然而,重新打开是不可行的。

刷新页面并在桌面模式下启动时偶尔会发生异常。有时当切换到移动模式时,信息窗口会在点击时打开,但我很少能够实现这一点。

看着控制台日志,这似乎都是某种时间问题。我已经尝试将函数从onload移动到推迟外部js文件,无论是在头部还是在标记之前,但都没有帮助。

关于为什么会发生这种情况或如何纠正它的任何想法?提前致谢!

javascript google-maps mobile
1个回答
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 () {
© www.soinside.com 2019 - 2024. All rights reserved.