有没有更好的方法来 (Un)select HighCharts Line Chart 中的所有 Legend Items?

Is there a better way to (Un)select all LegendItems in HighCharts LineChart?

Here is my demo

const seriesAmount = 90;

当变量「seriesAmount」小于50时,

一切顺利,

但是当它大于 50 时,

您必须等待很长时间才能取消选择它们。

是否有更好的解决方案来解决这个问题?谢谢!

在这种情况下,最好使用 setVisible 方法(由 show/hide 内部调用)。它提供了控制图表重绘过程的可能性。通过使用 hide/show 图表在每次迭代中重绘。

btn.addEventListener('click', () => {
    for (let i = 0; i < seriesAmount; i++) {
        chart.series[i].setVisible(undefined, false);
    }

    chart.redraw();
});

现场演示: https://jsfiddle.net/BlackLabel/f3L4oyqa/

API参考:https://api.highcharts.com/class-reference/Highcharts.Series#setVisible