javascript - 谷歌地图(v3)信息窗口一直在同一个标​​记上打开

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

我创建了几个 Gmarker(从 JQuery“加载”函数加载的 JSON 数据),在所有这些上我添加了一个事件监听器以打开我之前在标记上创建的信息窗口对象,然后我将它们全部添加到 map .

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

我上传了一个 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);
            };

        });
    });

最佳答案

改变

infowindow.open(map,marker);

infowindow.open(map,this);

关于javascript - 谷歌地图(v3)信息窗口一直在同一个标​​记上打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4010732/

相关文章:

javascript - 未捕获的类型错误 : Failed to execute 'serializeToString' on 'XMLSerializer' : Failing to download an svg (created with D3. js) 为 png/pdf

javascript - jquery只注册一个id

jquery - 为 jQuery 中的 2 个不同元素创建相同的事件(不是针对每个元素,而是针对两者!)

iphone - 从保存的谷歌地图中检索点的坐标

javascript - 通过 jQuery 访问 Google map 变量

java - TabLayout 在 TabLayout 内请求权限后不更新用户位置

javascript - JSON 格式的 Ext.data.store POST 数据问题

javascript - 固定 Div 内的相对 DIV 内的绝对 DIV 在滚动时消失

Jquery:删除某些 WordPress 段落

javascript - 在运行时更改使用 Three.js 创建的 3D 立方体的宽度/高度/长度