2012-05-22 97 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