【问题标题】:Google map (v3) infowindow opening on the same marker all the time谷歌地图(v3)信息窗口始终在同一个标​​记上打开
【发布时间】:2011-04-29 23:19:01
【问题描述】:

我创建了几个 Gmarker(从由 JQuery“加载”函数加载的 JSON 数据),在所有这些上我添加了一个事件侦听器来打开我之前在标记上创建的 infowindow 对象,然后我将它们全部添加到地图.

问题是信息窗口总是在同一个标​​记上打开。 我以前都有这个工作,我看不出问题出在哪里......变量的范围?某处犯了愚蠢的错误?

我上传了一个example,这是一个shortcut to the javascript file

代码:

    var map;
    var infowindow;
    $(document).ready(function() {

        var myLatlng = new google.maps.LatLng(47.15984,2.329102);
      var myOptions = {
        zoom: 6,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.HYBRID,
        scrollwheel: false
      }

      map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

      infowindow = new google.maps.InfoWindow({content:'<p>Test</p>'});

        $.getJSON("data.json", function(data) {

            var markers = [];
            for (var i = data.length - 1; i >= 0; i--){
                var latLng = new google.maps.LatLng(data[i].lat, data[i].lng);
              var marker = new google.maps.Marker({position: latLng});

              google.maps.event.addListener(marker, 'click', function() {
                    infowindow.open(map,marker);
              });

              markers.push(marker);
            };

            for (var j = markers.length - 1; j >= 0; j--){
                markers[j].setMap(map);
            };

        });
    });

【问题讨论】:

    标签: javascript jquery google-maps google-maps-markers infowindow


    【解决方案1】:

    改变

    infowindow.open(map,marker);
    

    infowindow.open(map,this);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多