当我将highcharts-chart呈现到div容器中时,如何通过div容器访问图表对象?
我不想使图表变量成为全局变量。
var chart = new Highcharts.Chart({
chart: {
renderTo: "testDivId",
...
我想在上面的上下文之外访问图表,就像这样(伪代码),调用函数:
var chart = Highcharts.Chart("testDivId"); //access from id
chart.redraw();
9条答案
按热度按时间iszxjhcz1#
3.0.1版高表
用户可以使用highcharts插件
高表2.3.4
从Highcharts.charts数组中读取,对于版本2.3.4及以后的版本,图表的索引可以从
<div>
上的数据中找到所有版本
按容器ID跟踪全局对象/Map中的图表
Read Mode @ Highcharts Tips - Accessing Chart Object From a Container ID
附言
在撰写此答案后,Highcharts的新版本中添加了一些内容,这些内容取自@davertron、@Nerdroid和@Frzy的答案,请支持他们的评论/答案,因为他们值得这些内容。在此添加这些内容,因为没有这些内容,此已接受的答案将不完整
w8biq8rn2#
你可以这样做
check example on fiddler
5gfr0r5j3#
chartCont是jQuery对象。chartObj是Highchart图表对象。
这是使用Highcharts 3.01
sqxo8psd4#
简单地用纯JS:
c9qzyr3d5#
我找到了另一种方法.... a.主要是因为我使用的是嵌入在OutSystems Platform中的Highcharts,而我没有办法控制图表的创建方式。
我发现的方法如下:
1.使用
className
属性为图表给予标识类1.定义一个辅助函数,通过类名获取图表
}
1.在任何需要的地方使用辅助功能
希望对你有帮助!
vlju58qv6#
不使用jQuery(普通js):
j7dteeu87#
var chart1是全局变量,因此您可以使用它来访问highchart对象,而不管它是哪个容器
vfwfrxfs8#
......在同事的帮助下......更好的方法是......
qzlgjiam9#
@elo的答案是正确的,而且是赞成的,尽管我不得不稍微整理一下,让它更清楚:
myChart
然后成为一个活动的Highcharts对象,它公开了在myChartEl
中呈现的图表中存在的所有当前属性。由于myChart
是一个Highcharts对象,因此可以在它之后链接原型方法,扩展它或引用它。你也可以通过
.highcharts()
获得myChart
,这是一个jQuery
插件:上面的 *
jQuery
插件 * 方法要求在使用插件之前加载jQuery
,当然还有插件本身。* 正是由于没有这个插件,我才开始寻找其他方法来使用纯普通JavaScript完成同样的任务。*通过使用纯JS方法,我能够完成我需要的工作(第二个代码片段),而不必依赖
jQuery
: