我在应用程序中使用Chart.js(版本:2.7.2)行,单击某些元素时打开对话框,我需要获取当前元素的标签(xAxes上的日期)。谷歌搜索我发现了一些例子,并试图做下一个:
var lineCanvas = document.getElementById("canvasVotesByDays");
var ctx = lineCanvas.getContext('2d');
var lineChart = new Chart(ctx, {
type: 'line',
data: {
labels: monthsXCoordItems,
datasets: [
{
label: 'Correct Votes',
...
lineCanvas.onclick = function (e) {
console.log("INSIDE lineChart::")
console.log(lineChart)
var slice = lineChart.getPointsAtEvent(e);
...
但是在最后一行,我得到了错误:
Uncaught TypeError: lineChart.getPointsAtEvent is not a function
at HTMLCanvasElement.lineCanvas.onclick
在控制台中,我看到了LineChart对象的特性:https ://imgur.com/a/E7jsoBc
为什么会出错以及如何获取标签属性?
谢谢!
根据文档,正确的方法似乎是getElementAtEvent或getElementsAtEvent:
function clickHandler(evt) {
var firstPoint = myChart.getElementAtEvent(evt)[0];
if (firstPoint) {
var label = myChart.data.labels[firstPoint._index];
var value = myChart.data.datasets[firstPoint._datasetIndex].data[firstPoint._index];
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句