【发布时间】:2019-05-07 23:57:04
【问题描述】:
我使用chart.js 创建了一些图表。我将点击事件添加到每列中有多个条形图(多个数据)的条形图,如下所示:
html
<canvas id="myChart" width="400" height="200"></canvas>
js
var canvas = document.getElementById('myChart');
var data = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [
{
label: "My First dataset",
backgroundColor: "rgba(255,99,132,0.2)",
borderColor: "rgba(255,99,132,1)",
borderWidth: 2,
hoverBackgroundColor: "rgba(255,99,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [65, 59, 20, 81, 56, 55, 40],
},
{
label: "My second dataset",
backgroundColor: "rgba(99,255,132,0.2)",
borderColor: "rgba(99,255,132,1)",
borderWidth: 1,
hoverBackgroundColor: "rgba(99,255,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [35, 29, 10, 50, 70, 33, 65],
},
]
};
var option = {
scales: {
yAxes:[{
gridLines: {
display:true,
color:"rgba(255,99,132,0.2)"
}
}],
xAxes:[{
gridLines: {
display:false
}
}]
}
};
var myBarChart = Chart.Bar(canvas,{
data:data,
options:option
});
canvas.onclick = function(e) {
console.log(e);
var bars = myBarChart.getElementsAtEvent(e);
console.log(bars)
}
你可以看到结果here in jsfiddle。
我的问题是我想为每个栏添加链接。所以我应该知道点击了whish栏。 getElementsAtEvent(e) 返回一个数据集大小的数组(在我的示例中,大小为 2)。例如,当我单击四月的柱时,四月的两个柱都返回了。但我想知道它们中的哪一个被准确地点击了。
【问题讨论】:
标签: javascript chart.js