2015-10-04 15 views
-1

晚上好,的addListener在for循環中不工作的權利

我用谷歌地圖API動態5個標記和InfoBoxes到增加(對循環)的地圖。現在我想動態設置的聽衆,我得到了下面的代碼:

for(var i in partnerschools){ 
      infoContent = 'BLABLA'; 
      info = new google.maps.InfoWindow({ 
       content: infoContent, 
       maxWidth: 230 
      }); 
      infos.push(info); 
      var marker = new google.maps.Marker({ 
       position: partnerschools[i].coordinates, 
       map: map, 
       animation: google.maps.Animation.DROP, 
       title: partnerschools[i].title, 
      }); 
      markers.push(marker); 
      markers[i].addListener('click', function(){ 
       infos[i].open(map, markers[i]); 
      }); 
     } 

的問題是,它始終是點擊其中一個標誌後,打開相同的信息框。一切工作真的很好,直到我試圖添加偵聽器到每個標記,我做錯了什麼?

+0

可能重複[谷歌地圖JS API V3 - 簡單多個標記示例](http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple多標記示例) – geocodezip

+0

使用此鏈接,我在這裏回答了此問題http://stackoverflow.com/a/32922108/3518319 – sunil

回答

0

解決

var addListener = function (i) { 
    google.maps.event.addListener(markers[i], 'click', function(){ 
     infos[i].open(map, markers[i]);     
    }); 
} 
addListener(i);