Делаю цикл, чтобы на маркеры гугловских карт повесить листенеры показа InfoWindow
for (var i = 0; i < points.length; i++) {
var point = points[i];
var myLatLng = new google.maps.LatLng(point.lat, point.lng);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: point.icon,
title: point.name,
visible:false
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(point.description);
infowindow.setPosition(myLatLng);
infowindow.open(map);
});
point.marker = marker;
}
В результате при клике на маркер он показывается
всегда для последней точки.
Т.е. такое ощущение, что функция создается не в своём контексте (как я привык в Яве), а используется последнее значение point из цикла.
Как это работает в JavaScript? Что делать чтобы листенер для каждого маркера показывал InfoWindow в правильном месте?
Спасибо