我使用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
。
我有什么想法可以得到这个对象?文档还没有完成;)
答案 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');
});