将Highcharts重置为初始状态

时间:2012-05-22 13:44:30

标签: javascript jquery highcharts

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

chart = new Highcharts.Chart(options);

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

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

这里有点关于如何重置此图表。

编辑::

检查图表容器显示饼图正在此处创建某些内容,但似乎没有正确检索数据。我是否还需要再次传入我的数据变量,即使它已在选项中设置了?

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

然后在页面上定义数据(对于我们的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>

2 个答案:

答案 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

答案 1 :(得分:4)

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

var defaultOptions = {
    // your options
};

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

drawDefaultChart();

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

您可以看到它正常工作 here