Информационное окно карты Google (v3) постоянно открывается на одном и том же маркере

Я создаю несколько Gmarkers (из данных JSON, загруженных функцией «загрузки» JQuery), на всех из них я добавляю прослушиватель событий, чтобы открыть объект информационного окна, который я создал ранее на маркере, а затем добавляю их все на карту.

Проблема в том, что информационное окно всегда открывается на одном и том же маркере. У меня все это работало раньше, я не вижу, в чем проблема... область действия переменной? глупая ошибка где-то?

Я загрузил пример, и вот ярлык для файла javascript

Код :

    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);
            };

        });
    });

person Julien    schedule 24.10.2010    source источник


Ответы (1)


Изменять

infowindow.open(map,marker);

to

infowindow.open(map,this);
person cambraca    schedule 24.10.2010