javascript - 单击 : handleClick

标签 javascript chart.js legend

我使用的是 Chart.js 版本 2.8.0。我想在任何数据点上添加单击事件以深入了解该数据点的更多详细信息。 我在折线图的选项下添加了以下内容:

options: {
  events: ['click', 'mousemove', 'touchstart', 'touchmove'],
  onClick: handleClick
}

然后我有一个js函数:

function handleClick(evt, legendItem, index, con) {
  debugger;
  var activeElement = getTrafficTypeChartId().getElementAtEvent(evt);
  var ar = $('#datePicker').val().split('/');
  reloadChart(ar.reverse().join(''), activeElement[0]._chart.data.labels[activeElement[0]._index].substring(0, 2));
}

为整个图表注册点击事件。所以发生的情况是,当我单击图表的图例时,图例没有突出,并且图表上没有出现相应的效果。所以传说已经变得没有用了。

我尝试在图例上添加函数:属性本身,但没有执行,只有 options: 下的处理程序被执行: https://www.chartjs.org/docs/2.7.2/configuration/legend.html?h=onclick

如何使图例单击照常工作并且仍然具有数据点单击的自定义功能?

最佳答案

我建议您向饼图的每个部分添加一个类或 ID。使用这个link 或者尝试下面的方法

  var defaultLegendClickHandler = Chart.defaults.global.legend.onClick;
        var newLegendClickHandler = function (e, legendItem) {
        var index = legendItem.datasetIndex;

       if (index > 1) {
           // Do the original logic
          defaultLegendClickHandler(e, legendItem);
       } 
   };

关于javascript - 单击 : handleClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60218396/

相关文章:

javascript - 从 'fetch' 返回解析值

javascript - 带有 chart.js 2.1.4 的可滚动 x 轴

python - 如何减少等高线图图例中的小数位数?

javascript - 用于内部 Controller 的 Angularjs 只运行一次

javascript - Eclipse 大纲 View - Eclipse 中可见的 JavaScript 类别?

chart.js - 如何摆脱chartjs工具提示中的白色方形轮廓或边框?

javascript - 如何阻止轴标签在图表 JS 中被 chop ?

MatLab:可选打开图例

python - 多行自定义图例,同一文本有两个标记

javascript - Python flask : send variable data to textarea on the same html page w/JQuery