在this page上,我显示了一张Google地图,上面显示了地图标记上显示的InfoBubble。 InfoBubbles最初是开放的。如果关闭它们,您可以通过点击标记重新打开它们。我想最初关闭InfoBubbles。相关的功能(简化,以去除不相关的东西)是:带有信息气泡的谷歌地图
addMarker = function(festivalData, hasPopup) {
var map = this._map;
this.marker = new google.maps.Marker({
position: new google.maps.LatLng(festivalData.latitude, festivalData.longitude),
map: map
});
if (hasPopup) {
var infoBubble = new InfoBubble({
map: map,
content: "<a href='" + festivalData.url + "'>" + festivalData.name + "</a>",
hideCloseButton: false,
});
infoBubble.open(map, this.marker);
var infoBubbleHandler = function(bubble) {
return function() {
if (!bubble.isOpen()) {
bubble.open(map, this.marker);
}
}
}(infoBubble);
google.maps.event.addListener(this.marker, 'click', infoBubbleHandler);
}
}
我预计,通过删除线
infoBubble.open(map, this.marker);
这会实现我的目标,但是这只是完全消除InfoBubbles,使他们不点击标记时甚至不会出现。我怎样才能让InfoBubbles最初显示关闭,但是当你点击一个标记时它们会打开?
我已经考虑过这个。如果我找不到“合适的”解决方案,这是我的最后手段。感谢您的建议。 – 2012-01-13 10:56:54
我同意这不是一个“适当的”解决方案。检查infoBubbleHandler中的_open_是否被调用。如果是这样,那么除了调试InfoBubble的_open__方法,我猜想没有别的办法可以做:/ – 2012-01-13 11:12:44