为什么我的highcharts图表不能正确复位/销毁?

时间:2013-04-09 18:42:49

标签: javascript jquery highcharts

在我的代码中,我正在初始化图表......

<script type="text/javascript">
var chart = null,
defaultOptions = {
chart: etc etc
};


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

$(function() {
    $(document).ready(function() {
        drawDefaultChart();
    });
});

</script>

然后在我身上

<a href="#" onclick="drawDefaultChart()">Reset</a>

但是当你点击链接时,它所做的就是用前一个状态的设置重绘图形...我不太清楚发生了什么。如果我添加chart.destroy();图表根本不起作用......

function drawDefaultChart() {
    chart.destroy();  //this makes the chart not work at all
    chart = new Highcharts.Chart(defaultOptions);
}

你可以清楚地看到我正在假设要重新绘制图表的默认选项....我不明白为什么它使用旧的过滤器设置,我即将跳下一座桥,有人可以帮忙吗?

我的实例是http://goo.gl/sGu0M

////////更新

我能够用大量的血,汗和泪来做。我最终将数据放入另一个页面上的php变量(以节省空间),然后使用php变量调用它,然后我每次有人点击链接时都会调用它。我发现,为了重绘图形,您必须每次重新加载所有数据。 PHP使屏幕上的数据量变得更容易。

这是最终帮助我解决问题的链接。 http://jsfiddle.net/dane/YUa3R/34/

2 个答案:

答案 0 :(得分:6)

始终建议您参考API文档。

使用以下代码段销毁图表$('#container').highcharts().destroy();

Click here提供有效的解决方案。

答案 1 :(得分:1)

首先,我知道没有关于highcharts,但看起来你需要:(来自你的实际页面)

function drawDefaultChart() {
$("#container").empty();
    chart = new Highcharts.Chart(defaultOptions);
}

function drawDefaultChart() {
    $("#container").empty().highcharts(defaultOptions);
}

或许:

function drawDefaultChart() {
    $("#container").highcharts(defaultOptions);
}