如何通过 DOM 容器访问 Highcharts 图表?

新手上路,请多包涵

当我将 highcharts-chart 渲染到 div 容器时,如何通过 div-Container 访问图表对象?

我不想使图表变量成为全局变量。

         var chart = new Highcharts.Chart({
            chart: {
                renderTo: "testDivId",
                                ...

我想像这样(伪代码)访问上面上下文之外的图表,以调用函数:

 var chart = Highcharts.Chart("testDivId"); //access from id
chart.redraw();

原文由 Manuel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 532
2 个回答

海图 3.0.1

用户可以使用 highcharts 插件

var chart=$("#container").highcharts();

高图 2.3.4

Highcharts.charts 数组读取,对于2.3.4及之后的版本,图表的索引可以从 <div> 上的数据中找到

 var index=$("#container").data('highchartsChart');
 var chart=Highcharts.charts[index];

所有版本

按容器 ID 跟踪全局对象/地图中的图表

var window.charts={};
function foo(){
  new Highcharts.Chart({...},function(chart){
      window.charts[chart.options.chart.renderTo] = chart;
  });
}

function bar(){
  var chart=window.charts["containerId"];
}

阅读模式@Highcharts Tips - 从容器 ID 访问图表对象

聚苯乙烯

自撰写此答案以来,在较新版本的 Highcharts 中进行了一些添加,这些 内容取自 @davertron@Nerdroid@Frzy 的答案,请为他们的评论/答案投票,因为他们应得的这些功劳。将它们添加到此处,因为如果没有这些,这个接受的答案将是不完整的

原文由 Jugal Thakkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题