Так что я работал над jquery отложенным, но у меня возникают проблемы при получении данных в цикле. Отложенная часть, по-видимому, обрабатывает данные только с последней итерации. Если в массиве есть только один элемент, он также терпит неудачу, поэтому я не уверен, что происходит.jquery отложен в цикле
У меня есть различные названия городов, и я пытаюсь получить центральные координаты для каждого города с карты Google реверса геокодированного
Вот моя функция, которая получает центральные координаты:
function getGroupLatLng(groupname){
var deferred = new $.Deferred();
geocoder.geocode({ 'address': groupname}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
deferred.resolve(results);
alert(results[0].geometry.location.lat());
} else {
}
});
return deferred.promise();
}
Это где функция вызывается, и DIV добавляется после того, как результат возвращается:
var newGroupsLength = newGroups.length;
for (i = 0; i < newGroupsLength; i++) {
newGroups[i]['counter']=counter;
var locationName = newGroups[i]['name'];
counter++;
alert(locationName);
$.when(getGroupLatLng(locationName)).then(function(results){
alert("lat = "+results[0].geometry.location.lat());
var lat=results[0].geometry.location.lat();
var lng=results[0].geometry.location.lng();
console.log(newGroups[i]); //this is running the proper number of times, but it logs the results from the final looped item, 'n' number of times.
newGroups[i]['lat']=lat;
newGroups[i]['lng']=lng;
var jsonArray=[];
jsonArray = newGroups[i];
var template = $('#groupsTemplate').html();
var html = Mustache.to_html(template, jsonArray);
$('#groups-container').append(html);
});
}
проблема, которую я имею в том, что отложенный цикл кажется т o обрабатывать последний элемент в цикле цикла «n», а «n» - количество элементов в массиве newGroupsLength. Конечно, он должен обрабатывать каждый элемент один раз. Если отложенное действие удалено, все работает отлично.
Искренне благодарит за любую помощь. Это очень ценится
Вау. огромное спасибо. Аспект console.log имеет смысл. Я не знал, что ведет себя так. Первоначально ничто внутри функции (i) {} не работает, но я продолжаю работать над ней и возвращаться к вам. – ambe5960
ошибка на моем конце. Спасибо вам много ... хотя проблема была решена, объяснение было неоценимым. – ambe5960