将Highcharts重置为初始状态

Gre*_*g B 5 javascript jquery highcharts

使用预设选项创建我的Highchart可以正常工作:

chart = new Highcharts.Chart(options);
Run Code Online (Sandbox Code Playgroud)

但是,当我想要销毁并重新创建图表时,它只会破坏.即使我删除chart.destroy();图表仍然只是完全消隐,但没有重新创建.

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

关于如何重置此图表有点困在这里.

编辑::

检查图表容器显示了饼图是创造的东西在这里,但似乎并没有得到适当的检索数据.我是否需要再次传入我的数据变量,即使它已在选项中设置?

series: [{
                name: name,
                data: data,
                /* changes bar size */
                pointPadding: 0,
                borderWidth: 0,
                pointWidth: 15,
                shadow: false
        }]
Run Code Online (Sandbox Code Playgroud)

然后在页面上定义数据(对于我们的CMS):

<script type="text/javascript">
        data = [
            {
                y: {value},
                name: 'field1',
                id:'1'
            },
            {
                y: {value},
                name: 'field2',
                id:'2'
            },
            {
                y: {value},
                name: 'field3',
                id:'3'
            }
        ];
    </script>
Run Code Online (Sandbox Code Playgroud)

und*_*ned 6

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

http://jsfiddle.net/tapkr/1


Ric*_*ann 5

当您第一次创建图表时,您通过参数传递一些选项,您可以将它们保存到 var 中,当您想要再次创建时,您可以使用相同的选项,如以下代码。

var defaultOptions = {
    // your options
};

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

drawDefaultChart();

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

你可以在这里看到它的工作原理。