我试图做一个标记数组,并让每个标记打开一个信息窗口与相关信息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);
}
谢谢!所以澄清它不起作用的原因是因为并非所有的对象都是单独创建的? –