javascript - Chart.js:是否可以在单击堆积条形图中获取数据集的标签?

标签 javascript chart.js

当单击特定数据集的堆栈时,我试图获取与堆积条形图中的数据集关联的标签名称。

这是我的代码:

    var dataPack1 = [100, 200, 300, 400, 500];
    var dataPack2 = [150, 450, 350, 250, 150];
    var dates = ["May 1", "May 2", "May 3", "May 4", "May 5"];
    var bar_chart = new Chart(bar_ctx, {
        type: 'bar',
        data: {
            labels: dates,
            datasets: [
            {
                label: 'Bowser',
                data: dataPack1,
                backgroundColor: "grey"                    
            },
            {
                label: 'Mario',
                data: dataPack2,
                backgroundColor: "maroon"
            },
            ]
        },
        options: {
            scales: {
              xAxes: [{ 
                stacked: true, 
                gridLines: { display: false },
                }],
              yAxes: [{ 
                stacked: true
                }],
            }, // scales
            onClick: function(evt, element) {
              //var val = element.something such that val is assigned 'Bowser'
            }
        } // options
       }
    );

现在,当我点击 500 时,我想要一个变量 val 被分配为“Bowser”。那可能吗?

Here是它的 jsfiddle。

最佳答案

可以使用原型(prototype)方法.getElementAtEvent(e)像这样点击元素

onClick: function(evt, element) {
  var activePoints = bar_chart.getElementAtEvent(evt);
  console.log(activePoints[0]._model.datasetLabel);
}

JSFiddle

或者您可以将其作为事件处理程序附加到图表元素上

bar_ctx.onclick = function(evt) {
  var activePoints = bar_chart.getElementAtEvent(evt);
  console.log(activePoints[0]._model.datasetLabel);
};

JSFiddle

关于javascript - Chart.js:是否可以在单击堆积条形图中获取数据集的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408670/

相关文章:

javascript - 如果与 bool 值的绑定(bind)未正确评估,则 knockout

javascript - 在 jquery 中使用 .split 并从数组中提取第一项

javascript - 如何在chartjs上实现动态数据?

chart.js - 使用类型 : 'time' 时,chartjs 上的条会叠加

javascript - 使用 jquery 选择不在特定父级下的所有 DOM 元素

javascript - Visual Studio 2005 JavaScript 调试

javascript - Node.js 和浏览器之间的中间件?

javascript - Chart.js 在线图顶部裁剪

javascript - 更改 Chart.js 日期中的时间格式

javascript - 如何将 Chart.js chartjs-plugin-datalabels npm 包导入 Angular 7 项目