2014-09-10 40 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

相關問題