Chart.js ChartJs如何从多个数据集获取单击的数据集栏
我想添加一个唯一的网址到每个酒吧,并打开该网址点击其中一个酒吧。但在我的例子中,我有两个数据集。我使用onClick事件返回两个数据集的活动记录。 我正在使用以下代码。。它将返回两个数据集对象…它应该只返回一个数据集Chart.js ChartJs如何从多个数据集获取单击的数据集栏,chart.js,Chart.js,我想添加一个唯一的网址到每个酒吧,并打开该网址点击其中一个酒吧。但在我的例子中,我有两个数据集。我使用onClick事件返回两个数据集的活动记录。 我正在使用以下代码。。它将返回两个数据集对象…它应该只返回一个数据集 <script> var barChartData = { labels: ["Jan","Feb","March"], datasets: [{ label : "Quo
<script>
var barChartData = {
labels: ["Jan","Feb","March"],
datasets: [{
label : "Quoted",
backgroundColor : "#FF7228",
data : [50,20,70],
},
{
label : "Accepted",
backgroundColor : "#FFCC8C",
data : [30,10,20],
},
]
};
window.onload = function() {
var ctx = document.getElementById("canvas").getContext("2d");
window.myBar = new Chart(ctx, {
type: 'bar',
data: barChartData,
options: {
events:['click'],
onClick:function(c,i){
console.log(this.active);
}
},
responsive: true,
legend: {
position: 'top',
},
}
});
};
</script>
var barChartData={
标签:[“一月”、“二月”、“三月”],
数据集:[{
标签:“引用”,
背景颜色:“FF7228”,
数据:[50,20,70],
},
{
标签:“接受”,
背景色:“FFCC8C”,
数据:[30,10,20],
},
]
};
window.onload=函数(){
var ctx=document.getElementById(“画布”).getContext(“2d”);
window.myBar=新图表(ctx{
类型:'bar',
数据:barChartData,
选项:{
事件:[“单击”],
onClick:函数(c,i){
console.log(this.active);
}
},
回答:是的,
图例:{
位置:'顶部',
},
}
});
};
您可以使用方法只返回一个数据集。然后,您可以应用进一步的逻辑来检测单击了哪个条
ᴅᴇᴍᴏ强>
var barChartData={
标签:[“一月”、“二月”、“三月”],
数据集:[{
标签:“引用”,
背景颜色:“FF7228”,
数据:[50,20,70],
}, {
标签:“接受”,
背景色:“FFCC8C”,
数据:[30,10,20],
}]
};
var ctx=document.getElementById(“画布”).getContext(“2d”);
window.myBar=新图表(ctx{
类型:'bar',
数据:barChartData,
选项:{
onClick:函数(e){
var bar=this.getElementAtEvent(e)[0];
var指数=bar.\u指数;
var datasetIndex=bar.\u datasetIndex;
//检查单击了哪个栏
如果(索引==0&&datasetIndex==0)警报('单击第一个栏!');
否则,如果(索引==0&&datasetIndex==1)警报('单击第二个栏!');
else if(index==1&&datasetIndex==0)警报('第三个条被点击!');
else if(index==1&&datasetIndex==1)警报('单击第四个栏!');
否则,如果(索引==2&&datasetIndex==0)警报('第五个栏已单击!');
否则,如果(索引==2&&datasetIndex==1)警报('单击了第六个栏!');
}
},
回答:是的,
图例:{
位置:'顶部',
},
});代码>
在Grutter上建立更多的答案,如果你想知道基础数据,那么只考虑OnCutt代码:
var barChartData = {
labels: ["Jan", "Feb", "March"],
datasets: [{
label: "Quoted",
backgroundColor: "#FF7228",
data: [50, 20, 70],
}, {
label: "Accepted",
backgroundColor: "#FFCC8C",
data: [30, 10, 20],
}]
};
var ctx = document.getElementById("canvas").getContext("2d");
window.myBar = new Chart(ctx, {
type: 'bar',
data: barChartData,
options: {
onClick: function(e) {
var bar = this.getElementAtEvent(e)[0];
if (bar != undefined) {
var index = bar._index;
var datasetIndex = bar._datasetIndex;
alert(barChartData.datasets[datasetIndex].data[index].x +
', ' + barChartData.datasets[datasetIndex].data[index].y);
}
}
},
responsive: true,
legend: {
position: 'top',
},
});
你能解释一下if-else
语句背后的逻辑吗?什么是bar.\u索引
,什么是bar.\u数据集索引
?