我正在从infoWindow
转到infoBox
以获得更好看的信息窗口。
我在地图上有很多标记。我想要做的是当一个infoBox
已经打开时,如果用户点击其他标记,当前infoBox
将自动关闭,新的infoBox
将会打开,这样用户就不会需要关闭当前infoBox
,并且一次只能显示一个infoBox
。
这是我当前解决方案的演示和代码 http://jsfiddle.net/neo3000ultra/9jhAy/
提前致谢!
答案 0 :(得分:10)
更改此部分:
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/
注意在打开infoBox之前使用ib.close()
似乎是一招。
答案 1 :(得分:3)
单个信息窗口的通常建议是只创建一个,然后将其重用于所有标记(更改其内容)。
以下是使用v3 API执行此操作的示例(我将其视为“v2 infowindow行为”,因为v2 API仅允许单个infowindow) 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/