0
我相当关于JS新手,所以这可能是一个愚蠢的问题...排行榜与jQuery.ajax:如何初始化/范围问题
我尝试做一个排行榜主/图(见样品http://jsfiddle.net/VhqaQ/)。该data
阵列应该充满jQuery.ajax电话:
$(function() {
var masterChart,
detailChart,
data=[],
chatter=[],
indizies=[];
$(document).ready(function() {
$.ajax({
url: 'index.php',
data: 'type=1363435001',
dataType: 'json',
success: function(json) {
data = json.range;
scatter = json.scatter;
indizies = json.indizies;
},
error: function (xhr, status, error) {
alert('Status: ' + status +' Error: ' + error);
}
});
// create the master chart
function createMaster() {
masterChart = new Highcharts.Chart({
.......
series: [{
type: 'columnrange',
name: 'Intervall',
pointInterval: 1,
pointStart: 0,
data: data
}],
});
}
........
createMaster();
});
});
但是像这样的图表保持为空。这是data
阵列的范围问题吗?或者当new Highcharts.Chart(...)
被调用时,data
尚未初始化?
我测试了ajax部分 - 数据填写正确。所以这不是问题...
也许我应该把ajax调用的其他地方?
我不明白为什么数据没有全局范围......它与createMaster和ajax调用的声明级别相同。 – rantanplan 2013-03-19 19:04:23
@rantanplan我以前没有看到你的初始化变量。我道歉。我必须不小心向下滚动太远。这就是说,仅仅因为变量存在并不意味着数据集已经被返回。最安全的做法是在100%确定您的呼叫已解决后调用您的方法,这是您的ajax异步调用的回调。我会更新我的答案以删除该违规行。 – 2013-03-19 19:06:45
非常感谢,现在我明白了:这是一个计时问题......! – rantanplan 2013-03-19 19:13:11