我正在从infoWindow
到infoBox
更好看的信息窗口。
我在地图上有许多标记。我想要做的是当一个infoBox
已经打开时,如果用户点击其他标记,当前infoBox
将自动关闭并infoBox
打开新的,这样用户就不需要关闭当前infoBox
,并且总是只有一个infoBox
显示在一次。
这是我当前解决方案的演示和代码 http://jsfiddle.net/neo3000ultra/9jhAy/
提前致谢!
我正在从infoWindow
到infoBox
更好看的信息窗口。
我在地图上有许多标记。我想要做的是当一个infoBox
已经打开时,如果用户点击其他标记,当前infoBox
将自动关闭并infoBox
打开新的,这样用户就不需要关闭当前infoBox
,并且总是只有一个infoBox
显示在一次。
这是我当前解决方案的演示和代码 http://jsfiddle.net/neo3000ultra/9jhAy/
提前致谢!
更改此部分:
google.maps.event.addListener(marker, "click", function (e) {
ib.open(map, this);
});
var ib = new InfoBox(myOptions);
google.maps.event.addListener(marker2, "click", function (e) {
ib2.open(map, this);
});
var ib2 = new InfoBox(myOptions2);
到以下:
var ib = new InfoBox();
google.maps.event.addListener(marker, "click", function (e) {
ib.close();
ib.setOptions(myOptions)
ib.open(map, this);
});
google.maps.event.addListener(marker2, "click", function (e) {
ib.close();
ib.setOptions(myOptions2)
ib.open(map, this);
});
对我有用,也在 IE9 中:http: //jsfiddle.net/doktormolle/9jhAy/1/
在打开信息框之前注意使用ib.close()
,似乎是诀窍。
对单个信息窗口的通常建议是只创建一个,然后将其用于所有标记(更改其内容)。
这是一个使用 v3 API 执行此操作的示例(我认为它是“v2 信息窗口行为”,因为 v2 API 只允许单个信息窗口) http://www.geocodezip.com/v3_markers_normal_colored_infowindows.html
这是基于 Mike Williams 的 v2 教程的另一个示例: http ://www.geocodezip.com/v3_MW_example_map1.html
并且您的示例已修改:http: //jsfiddle.net/uGnQb/6/