2013-01-04 110 views
4

在這個代碼的javascrip給出錯誤添加新HighChart系列

$.each(JSON, function(i, array) {       
    chart.series[i].name = array.teamName; 
    chart.series[i].setData(array.teamPower, true); 
}); 

我必須定義chart.series [我],因爲它說:「無法設置屬性‘名稱’的未定義」 但我不能找到一種方法來做到這一點。

因爲它fonction與運行的RequestData所以圖後帶着選項

function showGraph() { 
    chart = new Highcharts.Chart(option);  
} 

chart: { 
    renderTo: 'graphicShow', 
    type: 'spline', 
    events: { 
     load: requestData 
    } 
} 

...在選項決定...

title: { 
    text: 'Power %' 
}, 
series: [] 

。 ..

回答

20

您需要了解API的「方法和屬性」部分。請參閱http://api.highcharts.com/highcharts#Chart(文檔頁面上也有一個jsFiddle)。

var chart = new Highcharts.Chart(options); 
chart.addSeries({       
    name: array.teamName, 
    data: array.teamPowher 
}); 

如果您要添加幾個系列,你應該在redraw標誌設置爲false,然後調用時,會快很多之後,手動重繪。

var chart = new Highcharts.Chart(options); 
chart.addSeries({       
    name: array.teamName, 
    data: array.teamPower 
}, false); 
chart.addSeries({       
    name: array.teamName, 
    data: array.teamPower 
}, false); 
chart.redraw(); 
+0

有沒有按名稱引用該系列的方式,或者只是有工具提示等指定? – Ethereal

+0

您可以使用Chart.get函數,請參閱http://api.highcharts.com/highcharts#Chart.get()。請注意「名稱」和「ID」之間的區別。 – Nils

+0

你回答救了我的日子:)。乾杯 – Sumit

0

你也可以爲addSeries一個布爾值,第二個選項,表示如果重繪與否