选择全部并取消选择chart.js选项

Dav*_*vid 3 chart.js chart.js2

我正在使用Chart.js,想要为标签实现Select AllUnselect All选项.我试图找到它但却得不到任何东西.

如果可以实现任何此类功能,请帮助我.

bea*_*ver 10

如果你需要显示/隐藏图表,选择/取消选择所有标签就是一个例子:

var barChartData = {
  labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
  datasets: [{
    label: 'One',
    backgroundColor: 'rgba(206, 0, 23, 1)',
    data: [0, 1, 3, 0, 2, 0, 0, 2, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 2, 1, 0, 1, 2, 1, 1, 0, 0, 0, 2, 2, 0, 3]
  }, {
    label: 'Two',
    backgroundColor: 'rgba(206, 0, 23, 0.75)',
    data: [0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1]
  }, {
    label: 'Three',
    backgroundColor: 'rgba(206, 0, 23, 0.5)',
    data: [0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1]
  }]

};
var ctx = document.getElementById('canvas').getContext('2d');
var chartInstance = new Chart(ctx, {
  type: 'bar',
  data: barChartData,
  options: {
    title: {
      display: false,
    },
    responsive: true,
    scales: {
      xAxes: [{
        stacked: true,
      }],
      yAxes: [{
        stacked: true
      }]
    }
  }
});

$("#toggle").click(function() {
	 chartInstance.data.datasets.forEach(function(ds) {
    ds.hidden = !ds.hidden;
  });
  chartInstance.update();
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"></script>
<button id="toggle">show/hide all</button>
<canvas id="canvas" height="500" width="800"></canvas>
Run Code Online (Sandbox Code Playgroud)

Jsfiddle:https://jsfiddle.net/beaver71/00q06vjp/

致谢:请参阅https://github.com/chartjs/Chart.js/issues/3009


更新:对于饼图使用"meta",请参阅:https://jsfiddle.net/beaver71/u0y0919b/

  • 海狸,我已经编辑了您的代码,并添加了将** show / hide **事件应用于所有标签的逻辑。该功能运行良好,但问题是,一旦我单击“显示/隐藏”按钮,则“单个标签”仅在“双击”而不是第一次单击“ **”后才能工作。这是小提琴链接:https://jsfiddle.net/bhushand/31mbcnfq/6/您能帮助我如何解决此问题。我希望标签适用于首次点击而不是双击 (2认同)