移动Safari中的Google Maps v3 InfoBox事件传播

Google Maps v3 InfoBox Event Propagation in Mobile Safari

本文关键字:InfoBox 事件 传播 v3 Maps Safari 中的 Google 移动      更新时间:2023-09-26

我使用地图实用程序库中的googlemapsapiv3和infobox创建了一个infobox。信息框中有溢出的数据。在IE、FF、Chrome和Safari桌面上滚动操作完全符合预期。然而,在移动Safari中,滚动根本不起作用。这几乎就像infoBox没有检测到开始滚动的触摸一样。

我创建了这个jsfiddle来演示这个问题。正如你所看到的(在iOS模拟器或iOS设备上),mouseenter、touchstart、mouseleave和touchend事件被触发得很好;只是没有办法向下滚动查看溢出的文本。

我整个星期都在为此而挣扎。如有任何帮助,我们将不胜感激

我不知道这是否是移动safari(很可能)、infobox.js或谷歌地图中的错误,但由于某种原因,如果在移动safari的信息框中启用了事件传播,滚动将无法在该信息框中工作。当启用事件传播时,滚动将在其他浏览器(FF、Chrome和桌面Safari)中工作。此外,在信息框关闭事件传播的情况下,滚动在移动狩猎中也很好。

因此,我用来解决这个问题的破解方法只是确定客户端是否是iOS浏览器,然后相应地设置事件传播。我知道这种方法很难,但这是我能想到的最好的方法。看看这个fiddle,确认它在移动safari和其他浏览器中都能工作。此外,请确保您使用的是最新版本的infobox.js(1.1.11)

// For infobox
var myOptions = {
    enableEventPropagation: true
};
$(document).on("click touchstart", ".clickableclass", function() {
    // your function
});

touchstart为我工作