6

グラフ作成にc3.jsを使用していますが、すべてが期待どおりに機能しています。

ただし、他のスクリプト、つまりcallなどからAPIにアクセスしたいのですがresize...

私が使用する場合:

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

その後、チャート オブジェクトにアクセスできます。これは次のような API です。

chart.resize();

ただし、別のスクリプトであるためチャート オブジェクトにアクセスできない場合は、(jQuery を使用して) HTML DOM 要素を取得できます。

$(".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 chartmade fromではありませんc3.generate

このオブジェクトを取得する方法はありますか? ドキュメントはまだ完成していません ;)

4

1 に答える 1

10

すでに jQuery を使用しているため、 jQuery データを使用したソリューションを次に示します。

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'); 
});
于 2014-09-10T12:52:17.763 に答える