2012-05-22 100 views
5

創建我的預設選項Highchart正常工作:重置Highcharts到初始狀態

chart = new Highcharts.Chart(options); 

然而,當我要摧毀並重建它只是破壞了圖表。即使我刪除chart.destroy();,該圖表仍然完全消隱但未重新創建。

$('#resetChart').on("click", function(e){ 
    e.preventDefault(); 
    chart.destroy(); 
    chart = new Highcharts.Chart(options); 
}); 

有點卡在這裏如何重置這個圖表。

編輯::

檢查圖表容器顯示餅圖創造東西在這裏,但似乎並沒有得到適當的檢索數據。我是否還需要再次傳入數據變量,即使它已設置在選項中?

<script type="text/javascript"> 
     data = [ 
      { 
       y: {value}, 
       name: 'field1', 
       id:'1' 
      }, 
      { 
       y: {value}, 
       name: 'field2', 
       id:'2' 
      }, 
      { 
       y: {value}, 
       name: 'field3', 
       id:'3' 
      } 
     ]; 
    </script> 
+0

您是否看到我的回答? –

回答

6
$('#resetChart').on("click", function(e){ 
    e.preventDefault(); 
    while(chart.series.length > 0) chart.series[0].remove(true); 
    chart = new Highcharts.Chart(options); 
}); 

http://jsfiddle.net/tapkr/1

+0

這似乎並不奏效。我嘗試了他們的基本餅圖演示:http://jsfiddle.net/tapkr/ –

+0

@Grillz試試這個http://jsfiddle.net/tapkr/1/ – undefined

+0

該鏈接是否適合你?也許我冒着瀏覽器的問題,因爲小提琴沒有重置我 –

4

當您創建圖表,第一次你通過一些選項thrue的:

series: [{ 
       name: name, 
       data: data, 
       /* changes bar size */ 
       pointPadding: 0, 
       borderWidth: 0, 
       pointWidth: 15, 
       shadow: false 
     }] 

然後數據的頁面(對於我們的CMS)上定義參數,您可以將它們保存到一個var中,並且當您想再次創建時,可以使用與以下代碼相同的選項。

var defaultOptions = { 
    // your options 
}; 

function drawDefaultChart() { 
    chart = new Highcharts.Chart(defaultOptions); 
} 

drawDefaultChart(); 

$('#resetChart').on("click", function(e){ 
    e.preventDefault(); 
    chart.destroy(); 
    drawDefaultChart(); 
}); 

你可以看到它的工作here