2010-10-24 100 views
11

我創建了幾個Gmarkkers(從JQuery加載的JSON數據加載函數),在它們上面添加一個事件偵聽器來打開我創建的infowindow對象在標記之前,然後我將它們全部添加到地圖。Google map(v3)infowindow始終在同一個標​​記上打開

問題是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); 
      }; 

     }); 
    }); 

回答

25

變化

infowindow.open(map,marker); 

infowindow.open(map,this); 
+7

這傢伙是真棒:) – Julien 2010-10-25 14:14:23

相關問題