【问题标题】:Close infobox when another one is clicked (Google Maps API v3)单击另一个时关闭信息框(Google Maps API v3)
【发布时间】:2013-04-07 08:01:57
【问题描述】:

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

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

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

代码

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

谁能帮我解决这个问题?

【问题讨论】:

  • 你搞定了吗?
  • 你有问题的实时链接吗?

标签: jquery infobox


【解决方案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/

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多