2012-08-06 48 views
0

我想做一個簡單的頁面,其中將有一個頁面加載和兩個按鈕,一個用於刪除圖形和另一個重載它的Highstock圖表。但是,一旦第一個按鈕被點擊以清除內部圖表的容器,第二個按鈕的後續點擊不會重新加載圖表。我如何重新加載它?小提琴在http://jsfiddle.net/Cupidvogel/DCkmN/高清圖表清除後不顯示

回答

3

當你出於某種原因清除它時,你正在失去圖表選項數組。您可以在函數本身中創建它,如this

或更好的將它移入它自己的函數中,以便您可以重複使用它,如this

+0

是的,這似乎工作,但爲什麼圖表選項哈希丟失時清除? – SexyBeast 2012-08-06 20:29:21

+0

這很好,請解釋爲什麼清除圖表的容器時,我的解決方案中清除了選項哈希值? – SexyBeast 2012-08-06 20:37:04

+1

如果您調試,您會看到chartingOptions沒有被清除。它的系列屬性在構造函數調用後立即變爲null。對我來說就像一個錯誤。或者可能是爲了避免克隆系列選項中包含的大量數據,並且只是將相同的對象用於繪製圖表。 – 2012-08-06 20:45:18

1

如果您調試,您會看到chartingOptions沒有被清除。它的系列屬性在構造函數調用後立即變爲null。對我來說就像一個錯誤。或者可能是爲了避免克隆系列選項中包含的大量數據,並且只是將相同的對象用於繪製圖表。

這是源代碼怎麼說,

userOptions.series = null; 

的userOptions.series屬性故意被設置爲null被複制的施工後。

/** 
    * The chart class 
    * @param {Object} options 
    * @param {Function} callback Function to run when the chart has loaded 
    */ 
    function Chart(userOptions, callback) { 
    // Handle regular options 
    var options, 
    seriesOptions = userOptions.series; // skip merging data points to increase performance 
    userOptions.series = null;