我试图在循环中将侦听器添加到标记中,但是它不起作用。
分别添加它们时,它可以工作。像这样:
google.maps.event.addListener(markersArr[0], 'click', function() {
infoWindowArr[0].disableAutoPan=true;
infoWindowArr[0].open(map,markersArr[0]);
});
google.maps.event.addListener(markersArr[1], 'click', function() {
infoWindowArr[1].disableAutoPan=true;
infoWindowArr[1].open(map,markersArr[1]);
});
但是在添加循环时,单击标记不会弹出infoWindow。
for (var u=0; u<2; u++){
google.maps.event.addListener(markersArr[u], 'click', function() {
infoWindowArr[u].disableAutoPan=true;
infoWindowArr[u].open(map,markersArr[u]);
});
谁能解释一下如何使其循环运行?
最佳答案
我had the same situation and Engineer answered with an anonymous function wrapper。看起来像这样。与创建辅助功能相比,它更紧凑,但可读性更差。
for (var u=0; u<2; u++){
(function(u) {
google.maps.event.addListener(markersArr[u], 'click', function() {
infoWindowArr[u].disableAutoPan=true;
infoWindowArr[u].open(map,markersArr[u]);
});
})(u);
}