Я получаю немного XML через Ajax и обрабатываю его, вызывая функцию в случае успеха.
Из функции успеха (handleHousestark) я проверяю XML и вызываю другую функцию (getJonSnow) для добавления некоторых дополнительных данных. Все работает нормально, если я установил getJonSnow в async: false.Без этого это не работает.
$( document ).ready(function() {
$( "#button" ).click(function() {
$.ajax({
url: "test_php.php?function=getmain",
cache: false,
success: handleHousestark
});
});
});
function handleHousestark(html) {
var feature="";
var xml = html;
xmlDoc = $.parseXML( xml );
$xml = $( xmlDoc );
$($xml).find( "features" ).children().each(function(index) {
var attributevalue = $(this).attr('value');
var attributeunittype = $(this).attr('type');
var attributecode = $(this).attr('code');
if(attributeunittype!="Valuelist") {
feature=feature+"<B>"+attributevalue+"</B><BR/>";
}
if(attributeunittype=="Valuelist") {
values = getJonSnow(attributecode,function(res) {
///THIS WORKS WITH getJonSnow on async false, otherwise doesn't work. feature=feature+"<B>"+res+"</B><BR/>";
});
}
});
$("#content").html(feature);
}
function getJonSnow(attributecode,callback) {
$.ajax({
url: "test_php.php?function=getvalues",
cache: false,
success: callback
});
}