如何在特定数据标签上的chart.js中隐藏工具提示? [英] How to hide tooltip in chart.js on specific data label?

查看:59
本文介绍了如何在特定数据标签上的chart.js中隐藏工具提示?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当单击的对象的名称为 Something时,我都试图在chart.js中隐藏工具提示。我已经尝试过:

I am trying to hide a tooltip in chart.js whenever the name of clicked object is "Something". I have already tried this:

  this.doughnutChart = new Chart(this.doughnutCanvas.nativeElement, {
  type: 'doughnut',
  data: {
    datasets: [{
      label: _.map(this.dataService.AmTimeSlots, 'ProjectName'),
      data: _.map(this.dataService.AmTimeSlots, 'Duration'),
      backgroundColor: _.map(this.dataService.AmTimeSlots, 'Color'),
      hoverBackgroundColor: _.map(this.dataService.AmTimeSlots, 'HoverColor'),
      borderColor: _.map(this.dataService.AmTimeSlots, 'BorderColor'),
      borderWidth: 1.5
    },
    {
      label: _.map(this.dataService.PmTimeSlots, 'ProjectName'),
      data: _.map(this.dataService.PmTimeSlots, 'Duration'),
      backgroundColor: _.map(this.dataService.PmTimeSlots, 'Color'),
      hoverBackgroundColor: _.map(this.dataService.PmTimeSlots, 'HoverColor'),
      borderColor: _.map(this.dataService.PmTimeSlots, 'BorderColor'),
      borderWidth: 1.5
    }],
  },
  options: {
    elements: {
      arc: {
        roundedCornersFor: 0
      }
    },
    segmentShowStroke: false,
    responsive: true,
    maintainAspectRatio: true,
    legend: {
      display: false
    },
    onClick: this.chartClick.bind(this),
    cutoutPercentage: 65,
    tooltips: {
      filter: function (tooltipItem) {
        if (tooltipItem.xLabel == "Free Slot") {
          return false;
        } else {
          return true;
        }
      },
      callbacks: {
        label: function (tooltipItems, data) {
        return data.datasets[tooltipItems.datasetIndex].label[tooltipItems.index];
        },
        afterLabel: function (tooltipItems, data) {               
        return Math.floor(data.datasets[tooltipItems.datasetIndex].data[tooltipItems.index] / 6) + 'h ' + data.datasets[tooltipItems.datasetIndex].data[tooltipItems.index] * 10 % 60 + 'm';          
        }
      }
    }
  },
  config: {
    data: this.dataService,
    settings: this.settingsService
  }
});

上面的代码工作正常,可以成功隐藏工具提示的文本,但是问题是黑色标签/边框仍然保留。
如何隐藏它?

And this code above is working fine, it's succesfuly hiding the text of tooltip, but the problem is that the black label/border still remains. How to hide it?

推荐答案

您只需过滤器工具提示:

options: {
    tooltips: {
       filter: function (tooltipItem, data) {
           var label = data.labels[tooltipItem.index];
           if (label == "Red") {
             return false;
           } else {
             return true;
           }
       }
    }
}

查看此jsfiddle: https://jsfiddle.net/beaver71/ndc2uao2/

See this jsfiddle: https://jsfiddle.net/beaver71/ndc2uao2/

这篇关于如何在特定数据标签上的chart.js中隐藏工具提示?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆