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