以下是使用C3 js库生成条形图的代码
var chart = c3.generate({
bindto: '#barchart',
data: {
url: './API/get_bar_chart_data.php',
mimeType: 'json',
type: 'bar',
keys: {
x: 'category', // it's possible to specify 'x' when category axis
value: [ 'number']
},
onclick: function (d, i) {
console.log(chart.categories()[d.index]);
onclick_barchart();
}
},
bar: {
width: {
ratio: 0.5 // this makes bar width 50% of length between ticks
}
},
axis: {
x: {
type: 'category' // this needed to load string x value
}
}
});
在上面的代码中,我以json格式从URL获取数据。
现在点击我想把这个完整的json接收到onclick_barchart()函数。
答案 0 :(得分:0)
C3.js转换以内部格式收到的数据,因此无法获得收到的数据。
IMO,有两种方法可以解决这个问题。
// call api and assign the result in separate variable
var data = call_ajax("./API/get_bar_chart_data.php");
var chart = c3.generate({
data: {
columns: data
onclick: function() {
onclick_barchart(data);
}
},
...
}

var chart = c3.generate({
data: {
columns: data
onclick: function() {
// You can access in outside via 'chart.internal.data.targets'
// They're same result from .data() API
// https://naver.github.io/billboard.js/release/latest/doc/Chart.html#data
onclick_barchart(this.data.targets);
}
},
...
}