Моя проблема связана с использованием API Карт Google, но я почти уверен, что это общая проблема JavaScript.
У меня есть локальный массив объектов, определяющих серию маркеров.Обработка этих объектов не проблема.Но я хочу использовать одно из значений в обработчике событий, который я создаю, и значение всегда «неопределено» к моменту вызова обработчика события.(Что логично, поскольку значение было частью локального массива, но я не знаю, как это решить.)
Код:
var markers = [
{ lat: 58, lng: 07, title: 'Marker 01', url: 'article.aspx' },
.... /* etc */
]
for (var idx in markers) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng( markers[idx].lat, markers[idx].lng ),
title: markers[idx].title,
map: map
});
google.maps.event.addListener( marker, 'click', function() {
window.location.href = markers[idx].url;
});
}
Когда я нажимаю наодин из маркеров в окончательной карте (т. е. вызвать слушателя 'click'), я перенаправлен на страницу с именем 'undefined', потому что атрибут 'url' больше не имеет значения.Как мне это исправить?