我发现了问题,但我的解决方案无效。变量d0和d1将被填充,但在代码创建并拼接数组storelocations之后。因此,我得到一个错误,即d0和d1未定义。任何解决方案?
使用Javascript:
$(function () {
$.get("/Map/GetJsonData", function (data) {
storeLocations = [];
var d0 = data[0].Delay;
var d1 = data[1].Delay;
});
var storeLocations = new Array();
storeLocations.splice(storeLocations.length, 0, d0);
storeLocations.splice(storeLocations.length - 1, 0, d1);
}
答案 0 :(得分:1)
AJAX是异步,要么创建一个回调,要么在AJAX回调中做你需要的事情:
$.get("/Map/GetJsonData", function (data) {
storeLocations = [];
var d0 = data[0].Delay;
var d1 = data[1].Delay;
var storeLocations = new Array();
storeLocations.splice(storeLocations.length, 0, d0);
storeLocations.splice(storeLocations.length - 1, 0, d1);
});
答案 1 :(得分:1)
由于您在$ .get方法的回调函数中声明了变量(d0和d1),因此这些变量是私有的,只能在声明它们的行之后在该函数中访问。因此,您应该将storeLocations代码移动到回调函数中。
$(function () {
var storeLocations = new Array();
$.get("/Map/GetJsonData", function (data) {
storeLocations = [];
var d0 = data[0];
var d1 = data[1];
storeLocations.splice(storeLocations.length, 0, d0);
storeLocations.splice(storeLocations.length - 1, 0, d1);
});
});
在我的示例中,我在$ .get方法的范围之外声明了storeLocations,因此它可以在jQuery文档就绪方法范围内的任何位置访问(在声明它的行之后)。