【发布时间】:2013-06-07 08:19:23
【问题描述】:
我目前正在为 Google 地图使用 InfoBox 插件。不幸的是,我遇到了一个烦人的问题。
我的应用程序上的用户可以通过将鼠标悬停在相应的标记上来打开信息框。这很好用。当信息框打开并且用户将鼠标悬停在它上面时,就会出现问题。出于某种原因,信息框下方的标记正在触发它们的鼠标悬停事件。这是一个大问题,因为它在打开属于刚刚触发其鼠标悬停事件的标记的框之前关闭当前框。我做了一些搜索,发现将每个标记设置为:
optimized: false
防止了这个错误。但是,此选项会减慢地图的速度并使其使用起来很麻烦。
我的信息框:
infoWindows[obj.VehicleName] = new InfoBox({
content: contentString,
disableAutoPan: false,
maxWidth: 500,
pixelOffset: new google.maps.Size(-250, -490),
boxStyle: {
width: "500px"
},
enableEventPropagation: false,
infoBoxClearance: new google.maps.Size(45, 1)
});
我的听众:
google.maps.event.addListener(marker, 'mouseover', function() {
【问题讨论】:
-
你并不孤单When a marker lies behind open infobox - Event mouseover with InfoBox plugin Google Maps API v3。您需要在 InfoBox 中停止事件的传播。
-
这可能是相关的:stackoverflow.com/questions/13944058/…(可能设置 enableEventPropagation:false?)
-
不幸的是, enableEventPropagation:false 似乎不起作用。我尝试将其设置为 false,但它似乎没有做任何事情。也许我的其他设置之一有干扰。
-
documentation 表示默认为 false。
-
我设法为它想出了一个肮脏的修复方法。如果您有兴趣,请参阅答案部分。
标签: javascript google-maps google-maps-api-3