将图表重置为初始加载会引发renderTo错误

时间:2013-09-10 15:02:29

标签: highcharts highstock

使用最新的HighStock / HighCharts,我们使用以下语法创建图表:

$('#container').highcharts({...

然后我们允许用户对显示的图表系列进行一些操作。我们添加了用户将图表重置回原来的能力。我们正在使用这种方法:

function forceResetChart(chart) {
    var opts = chart.options;
    chart.destroy();
    chart = new Highcharts.Chart(opts);
}

这会重置图表,我们可以再次进行更改。但是,我们一直在控制台中抛出错误:

  

TypeError:a.renderTo未定义@ ... / JavaScript / HighStock / highstock.js:198

我们如何仍然使用更清晰的语法($('#container').highcharts({...)并且不会抛出此错误?

Example jsFiddle

1 个答案:

答案 0 :(得分:2)

选项1)只需确保您仍然在图表属性中指定“renderTo:'container'”。 或者,如果您不想包含在初始图表代码中,请将其添加到forceReset函数中的选项中。

选项2)在你的forceReset函数中,使用相同的'$('#container')。Highcharts ...'语法调用你的图表,而不是切换回其他语法

example of option 2: 

http://jsfiddle.net/5pa7N/8/

{{编辑选项3:

  • 预先设置选项变量。
  • 使用该变量调用页面加载图表。
  • 使用该变量重新加载图表

http://jsfiddle.net/eYmh9/