我試圖做一個標記數組,並讓每個標記打開一個信息窗口與相關信息onclick但我得到一個無法讀取'應用'屬性的undefined或者打開錯誤的標記;我的2個企圖是:谷歌地圖API添加infowindow到單擊事件上的標記數組
無法讀取應用:
var infowindow = new google.maps.Infowindow();
for (var i=0;i<popular.length;i++){
var mkrLatLng = new google.maps.LatLng(popular[i][1], popular[i][2]);
var marker = new google.maps.Marker({
map: map,
title: popular[i][0],
position: mkrLatLng
});
markers.push(marker);
}
for (var i=0;i<markers.length;i++){
markers[i].addListener('click', (function(){
console.log('click');
cont = "<div> " + markers[i].title + " </div>";
infowindow.setContent(cont);
infowindow.open(map, marker);
})(markers));
}
打開上錯誤標記(匿名函數包裝在另一個函數,因爲它擺脫了未定義錯誤的,我不明白爲什麼):
var infowindow = new google.maps.Infowindow();
for (var i=0;i<popular.length;i++){
var mkrLatLng = new google.maps.LatLng(popular[i][1], popular[i][2]);
var marker = new google.maps.Marker({
map: map,
title: popular[i][0],
position: mkrLatLng
});
marker.addListener('click', function(){(function(){
console.log('click');
cont = "<div> " + marker.title + " </div>";
infowindow.setContent(cont);
infowindow.open(map, marker);
})(marker)});
markers.push(marker);
}
謝謝!所以澄清它不起作用的原因是因爲並非所有的對象都是單獨創建的? –