如何从C3 JS图表的选择器获取对象引用

时间:2014-09-10 12:33:41

标签: javascript jquery c3.js

我使用c3.js进行图表处理,所有内容都按预期工作。

但是,我想从其他脚本访问API,即调用resize等...

如果我使用:

var chart = c3.generate({ ... });

然后我可以访问图表对象和它的API,如:

chart.resize();

但是,如果我无法访问图表对象,因为它是另一个脚本我可以获取HTML DOM元素(使用jQuery):

$(".c3").each(function(i, chart) { 
    // Here I want to do something like chart.resize();
    // But chart is just the DOM reference, not the chart variable
    // I need something like c3.get(chart)????
});

但循环中的chart是一个DOM对象,而不是var chart生成的c3.generate

我有什么想法可以得到这个对象?文档还没有完成;)

1 个答案:

答案 0 :(得分:8)

由于您已经在使用jQuery,因此这是使用jQuery data的解决方案:

保存对图表的引用,键入其DOM元素:

var selector = '#some-selector';
var chart = c3.generate({
  bindTo: selector,
  // ...
});

$(selector).data('c3-chart', chart);

要访问每个.c3元素的图表:

$('.c3').each(function() {
  var chart = $(this).data('c3-chart'); 
});