2016-06-13 103 views
0

我有一個問題,我得到了這個問題的標題的錯誤,當我創建像在此撥弄http://jsfiddle.net/w43m47hL/圖表的特性「信息」。無法讀取未定義

選擇一個點時出現此問題。

this.select(); 

執行這些步驟時發生該問題。

  1. 創建圖表
  2. 點擊一個點選擇它
  3. 破壞圖表
  4. 創建圖表再次

數據集的大小似乎有事可做與問題。如果您將1500更改爲15,則會看到您不再遇到此問題。但是,在圖表被銷燬並重新創建之後,所選數據點仍然處於選中狀態。我會認爲自從圖表被銷燬以後就不會選擇這一點。數據點如何記住它被選中?

+0

你不破壞原始圖表 – charlietfl

+0

我破壞圖表作爲這裏的記錄小提琴描述。 http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/chart-destroy/。你能告訴我我是如何做錯的嗎? – user1757006

+1

這不是什麼高分佈圖,而是你創建數據的方式。我更新了[小提琴](http://jsfiddle.net/w43m47hL/2/),錯誤不再發生。 –

回答

1

問題通過保持參考「舊」數據陣列引起的。在圖表初始化期間,您將對參考數據的引用設置爲已修改。所以當你銷燬圖表時,引用依然存在。在Highcharts對象中使用數據副本($ .extend([],data))。

series: [{ 
    data: $.extend([], data) 
    }], 

例子:

+0

除了Rahul Sharma的評論,我用這個建議來解決我的問題。在生產中,我只需將(數據:[])更改爲(data:data),然後在創建圖表之前設置(var data = [])。現在效果很好。 – user1757006