【问题标题】:HighCharts line chart - How to prevent the deselection of the last legend item?HighCharts 折线图 - 如何防止取消选择最后一个图例项?
【发布时间】:2013-03-14 01:17:52
【问题描述】:

有没有办法防止隐藏折线图中最后一个被取消选择的图例项?

我已经使用legendItemClick 事件在柱形图/饼图上实现了它:

legendItemClick: function (e) {
    var self = this;
    var hiddenSeries = function () {
        var counter = 0;
        $.each(self.series.points, function (i, v) {
            if (!v.visible) {
                counter++;
            }
        });
        return counter;
    }

    if (self.series.points.length - 1 == hiddenSeries() && self.visible) {
        return false;
    } else {
        return true;
    }
}

正如您在下面的fiddle 中看到的那样,它工作得很好,但是,它不适用于折线图,因为“this”对象不包含“series.points”属性。

【问题讨论】:

    标签: javascript svg highcharts


    【解决方案1】:

    您可以参考图表变量来获取系列信息。我是这样做的:

               legendItemClick: function (e) {
                    var visibleSeries = function () {
                        var counter = 0;
                        $.each(chart.series, function (i, v) {
                            if (v.visible) {
                                counter++;
                            }
                        });
                        return counter;
                    }
                    if (visibleSeries() <= 1 && this.visible) {
                        return false;
                    } else {
                        return true;
                    }
                }
    

    http://jsfiddle.net/4tpsG/

    【讨论】:

    • 太棒了!没注意到chart.series!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2012-11-06
    相关资源
    最近更新 更多