2014-09-10 41 views
3

我正在使用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对象,而不是从c3.generate所作的var chart

任何想法如何我可以得到这个对象?该文件没有完全结束;)

回答

7

正如你已经在使用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'); 
}); 
+0

工程就像一个魅力,jQuery的总是这些有用的宝石! – RemarkLima 2014-09-10 13:55:50

+0

@RemarkLima这不适用于我,我仍然得到一个DOM元素 – 2016-03-09 10:16:56

+0

你是否将图表对象添加到数据?确保它不是被添加的选择器... – RemarkLima 2016-03-09 11:09:13

相关问题