У меня проблема с циклом for на карте LeafletJs, по какой-то причине я не могу получить, чтобы он дал мне правильный идентификатор из массива, вместо этого он дал мне последний идентификатор на всех файлах clickevent's , За пределами $.get()
Идентификатор отображается правильно. Но внутри я просто получаю последнее в массиве. Можно ли выпустить вариант получения пользовательской руды, есть ли другие способы сделать это.Получить идентификатор из массива внутри функции
for (var i = 0; i < myColumnDefs.length; i++) {
var obj = myColumnDefs[i];
// obj.id = i;
var latitude = obj.GisLatitude.toFixed(5);
var longitude = obj.GisLongitude.toFixed(5);
//The correct id
console.log(obj.Id);
var m = L.marker([latitude, longitude], { icon: greenIcon }).on('click', function (e) {
var markeren = this;
debugger;
$.get(ol.url('~/Map/MapContent/'), {id: m.id }, function(data) {
L.popup()
.setLatLng(markeren.getLatLng())
.setContent(data)
.openOn(map);
});
}).addTo(map);
m.id = obj.Id;
console.log('Latitude: '+latitude + ' - Longitude: ' + longitude);
}
Возможный дубликат [Javascript закрытия внутри петель - простой практический пример] (http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) –