【问题标题】:Show / hide dataLabels on legend click在图例单击时显示/隐藏 dataLabels
【发布时间】:2017-12-21 19:29:50
【问题描述】:

我正在研究 Highcharts 中的堆积柱形图。我有一个要求,每次点击图例时,都应该显示/隐藏该系列的 dataLabels,但不应隐藏系列/堆栈。所以我只想隐藏/显示数据标签。

我尝试了这个并通过使用这个让系列停止隐藏:

events: {
    legendItemClick: function () {
        return false; // <== returning false will cancel the default action
    }
}

但我无法在点击图例时显示 dataLabels。

这里是Fiddle Link

【问题讨论】:

  • return true 在你的小提琴中工作正常
  • 为什么你又问了同样的问题?你可以编辑同样的问题
  • @NitinDhomse 图表相同,但要求不同
  • return true; 隐藏堆栈。我希望堆栈始终可见并且只隐藏/显示数据标签
  • 没关系,您仍然可以在一个问题中提及两种不同的情况。

标签: javascript jquery highcharts


【解决方案1】:
legendItemClick: function (x) {
                    x.preventDefault()
                  var opt = x.target.chart.options.plotOptions.series;
    opt.dataLabels.enabled = !opt.dataLabels.enabled;
    x.target.chart.series[x.target.index].update(opt);
                  //x.target.chart.options.plotOptions.series.dataLabels.enabled=false
                   // <== returning false will cancel the default action
                    }

【讨论】:

  • 检查这是不是你想要的
  • 谢谢@undefined_variable
【解决方案2】:

感谢@undefined_variable 的回答。

我发现了另一种使用this的方法。

legendItemClick: function () {
    var enabled = !this.options.dataLabels.enabled;
    this.update({
        dataLabels:{
            enabled: enabled
        }
    });
    return false; 
}

Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多