5

使用预设选项创建我的 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>
4

2 回答 2

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

于 2012-05-22T13:51:51.077 回答
4

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

var defaultOptions = {
    // your options
};

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

drawDefaultChart();

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

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

于 2012-05-22T14:12:35.023 回答