我正试图这样做:
function loadApp() {
var content = getContent("content.xml");
createMap(content);
}
function getContent(file) {
$.ajax({
type: "GET",
url: file,
dataType: "xml",
success: parseXml
});
function parseXml(xml) {
var content = [];
$("element", xml).each(function () {
var var1 = $(this).children("var1").text(),
content.push(var1)
});
return content;
}
}
function createMap(content) {
alert(content);
}
但是当我打开页面时,警报显示我的content
变量未定义。当我从getContent()
删除content
时,createMap(content);
工作正常,并为loadApp()
提供了字符串值。似乎createMap()
在getContent()
之前运行,这就是为什么变量尚未定义,为什么会发生这种情况以及如何解决呢?
提前致谢。
答案 0 :(得分:2)
我假设getContent()
进行异步AJAX调用。如果是这样,{<1}}函数在收到响应之前被称为。
如果是这种情况,我会修改createMap()
函数,以便您可以将getContent()
函数传递给它,并在适当的时候调用它。
createMap()