1

我正在开发一个带有谷歌地图的应用程序,它应该在地图上显示几个类别。现在我想有可能从几个类别中添加标记并在必要时删除它们。

我正在使用信息框插件,它可以自定义 Windows 信息框。你可以在这里找到

我的问题。当您单击另一个标记时,我希望关闭一个信息框。不过,我不知道该怎么做。这是我用于标记上的单击事件的代码。

代码

google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
        newMarkers[i].infobox.open(map, this);
        map.panTo();
    }
})(marker, i));

任何人都可以帮助我吗?

4

2 回答 2

2

打开 addListener 后,将此 jQuery 添加为第一行:

$(".infoBox").fadeOut(300);

于 2013-05-10T07:13:00.830 回答
1

您使用的代码不会关闭信息框。发挥作用的另一件事是仅使用一个信息框并从信息框中添加和删除信息。(这是前五行代码所做的)。这是我正在使用的代码。

parkMarker.push(marker);
parkOptions.push(markerOptions);

parkMarker[arrayLoc].infobox = new InfoBox(parkOptions[arrayLoc]);

parkMarker[arrayLoc].infobox.open(map, marker);
parkMarker[arrayLoc].infobox.close();

google.maps.event.addListener(parkMarker[arrayLoc], 'click', (function(marker, arrayLoc){
    return function(){
        for ( h = 0; h < parkMarker.length; h++ ) {
            if(parkMarker[h].infobox){
              parkMarker[h].infobox.close();
        }
    }
      marker.infobox.open(map, marker);
  }
})(parkMarker[arrayLoc], arrayLoc));  

这个 jsfiddle 不起作用,但它有我用来让它工作的所有代码:http: //jsfiddle.net/UDRmz/1/

于 2013-10-25T22:37:36.873 回答