У меня есть два класса javascript (Controller.js & Events.js). Из Events.js я вызываю XML-парсер в Controller.js. Работы Parser, но ничего не возвращает:Возврат не возвращается Объект
SceneEvent.prototype.handleKeyDown = function (keyCode) {
switch (keyCode) {
case sf.key.ENTER:
var itemList = null;
itemList = Controller.ParseXML("app/data/Event.xml");
alert("itemList = " + itemList);
}
};
Controller.js выглядит следующим образом:
Controller.ParseXML = function (url) {
var itemList = null;
$.ajax({
type: "GET",
url: url,
dataType: "xml",
async: false,
success: function(xml) {
$(xml).find("event").each(function() {
var _id = $(this).attr("id");
var _eventItemDay = $(this).find("eventItemDay").text();
...
var _eventItemLocation = $(this).find("eventItemLocation").text();
itemList = {
id: _id,
eventItemDay: _eventItemDay,
eventItemLocation: _eventItemLocation,
...
eventItemLocation: _eventItemLocation
};
});
return itemList;
},
error: function(xhr, ajaxOptions, thrownError){
alert("XML ERROR");
alert(xhr.status);
alert(thrownError);
}
});
};
Когда я распечатать ITEMLIST в Controller.js все работает отлично. Любые предложения?
Я бы не предложил использовать synchronousJAX, но я думаю, вам нужно поставить 'return itemList;' в нижней части вашей основной функции, а не в 'success' – Ian
: [Как вернуть ответ от AJAX позвонить?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) –