所以我希望仪表板能够在一个函数内进行修改,然后显示在另一个函数中。有点像java中的公共(public)变量。这可能吗?请参阅下面我的代码。
var dashboard = new Array();
function init() {
getXML(); //1. goto get XML 2.// XML Parser
displayXML();
}
function getXML() {
console.log("getXML REACHED");
$.ajax({
type: "GET",
url: "file:///H:/ModelDisplayV1/ModelDisplayV1/files/dashboard.xml",
dataType: "xml",
success: xmlParser
});
}
function xmlParser(xml) {
dashboard[0] = 7;
console.log(dashboard);
});
}
function displayXML() {
console.log("display xml function reached!!!");
console.log(dashboard);
}
当我最终尝试获取console.log(dashboard)
时,它显示仪表板未定义
。我认为通过在我的功能之外声明仪表板,它将是全局的。如何才能在一个函数中更改仪表板的内容并在另一个函数中检索它们?
与 Javascript 相比,我更熟悉 Java。
最佳答案
ajax 调用是异步的,因此在实际填充仪表板之前,会在 init() 方法中调用 displayXML() 函数。因此,请这样做:
var dashboard = new Array();
function init() {
getXML(); //1. goto get XML 2.// XML Parser
}
function getXML() {
console.log("getXML REACHED");
$.ajax({
type: "GET",
url: "file:///H:/ModelDisplayV1/ModelDisplayV1/files/dashboard.xml",
dataType: "xml",
success: xmlParser
});
}
function xmlParser(xml) {
dashboard[0] = 7;
console.log(dashboard);
displayXML();
});
}
function displayXML() {
console.log("display xml function reached!!!");
console.log(dashboard);
}
关于javascript - 如何在 JavaScript 中创建全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9609734/