3

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

<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/

4

2 回答 2

6

始终建议参考API文档。

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

单击此处获取有效的解决方案。

于 2014-06-10T09:21:50.907 回答
1

首先,我对highcharts一无所知,但您似乎需要:(来自您的实际页面)

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

成为

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

也许:

function drawDefaultChart() {
    $("#container").highcharts(defaultOptions);
}
于 2013-04-09T21:19:27.513 回答