我在项目中使用ChartJs库,并且试图在切片悬停或图例悬停上显示饼图的工具提示,默认情况下,该库仅在切片悬停上显示工具提示,>
我正在尝试执行以下onHover函数
onHover: function (event, legendItem) {
var index = legendItem.datasetIndex;
var label = this.chart.data.datasets[index].label
return label;
}
但是下面的功能仍然没有效果。
图表配置的整个代码如下:
optionsPagamenti = {
maintainAspectRatio: false,
legend: {
display: true,
position: "right",
labels: {
usePointStyle: true,
boxWidth: 6
},
onHover: function (event, legendItem) {
var index = legendItem.datasetIndex;
var label = this.chart.data.datasets[index].label
return label;
}
},
tooltips: {
backgroundColor: '#f5f5f5',
titleFontColor: '#333',
bodyFontColor: '#666',
bodySpacing: 4,
xPadding: 12,
intersect: 1,
displayColors: false,
callbacks: {
title: function (tooltipItem, data) {
return data['labels'][tooltipItem[0]['index']];
},
label: function (tooltipItem, data) {
return "€" + data['datasets'][0]['data'][tooltipItem['index']].toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,').replace(/[,.]/g, m => (m === ',' ? '.' : ','));
}
}
},
responsive: true,
};
那么我如何在图例悬停上显示工具提示?
答案 0 :(得分:0)
使用以下方法解决:
onHover: function (event, legendItem) {
var chart = this.chart;
var index = legendItem.index;
var segment = chart.getDatasetMeta(0).data[index];
chart.tooltip._active = [segment]
chart.tooltip.update()
chart.draw()
}
我还添加了一个onLeave方法来关闭工具提示
onLeave: function (event, legendItem) {
var chart = this.chart;
var index = legendItem.index;
chart.tooltip._active = []
chart.tooltip.update()
chart.draw()
}