Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Непонятная последовательность вызова (https://javascript.ru/forum/jquery/21737-neponyatnaya-posledovatelnost-vyzova.html)

MadGest 22.09.2011 11:32

Непонятная последовательность вызова
 
var adress;
	var geocoder = new google.maps.Geocoder();
	$.ajax({
		url: "get_feed.php",
		type: "post",
		dataType: "json",
		success: function (response){	
			$("#feed table").empty();
			$.each(response, function(i,item){
				var  tr = $("<tr/>");
				mapGetAdress(item.x,item.y);
				$(tr).append($("<td/>").text(item.name));
				$(tr).append($("<td/>").text(item.time));
				$(tr).append($("<td/>").text(item.date));
				$(tr).append($("<td/>").text(String(adress)));
				$("#feed table").append(tr);
			});	
		}
	});

	function mapGetAdress(x,y) {
		var lat = parseFloat(x);
		var lng = parseFloat(y);
		var adress;
		var latlng = new google.maps.LatLng(lat, lng);
		geocoder.geocode({'latLng': latlng}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				adress = results[0].formatted_address;		
				alert(String(adress));
			} else {
				alert("Ошибка геокодера! Причина: " + status);
			}		
		});		
	}


mapGetAdress - выполняется после заполнения таблицы. Неясно как нужно оформить скрипт что бы нормализовалась последовательность.

kadabrik 22.09.2011 11:59

заполнять таблицу в каллбэке geocoder.geocode

PS а к чему такой код?
var  tr = $("<tr/>");
$(tr).append($("<td/>").text(item.name));
$(tr).append($("<td/>").text(item.time));
$(tr).append($("<td/>").text(item.date));
$(tr).append($("<td/>").text(String(adress)));

не лучше ли ;) :
var  tr = $("<tr/>");
tr.append($("<td/>").text(item.name))
  .append($("<td/>").text(item.time))
  .append($("<td/>").text(item.date))
  .append($("<td/>").text(String(adress)));

MadGest 22.09.2011 13:31

:) Спасибо!

walik 22.09.2011 13:45

Цитата:

Сообщение от kadabrik
не лучше ли :
var  tr = $("<tr/>");
tr.append($("<td/>").text(item.name))
  .append($("<td/>").text(item.time))
  .append($("<td/>").text(item.date))
  .append($("<td/>").text(String(adress)));

Тогда уж так :)
tr.append(
   $("<td/>").text(item.name),
   $("<td/>").text(item.time),
   $("<td/>").text(item.date),
   $("<td/>").text(String(adress))
);


Часовой пояс GMT +3, время: 05:31.