如何修改highcharts图例项点击事件?

Posted

技术标签:

【中文标题】如何修改highcharts图例项点击事件?【英文标题】:How to modify highcharts legend item click event? 【发布时间】:2012-05-23 05:07:43 【问题描述】:

我需要修改 highcharts 图例项的点击事件。 Highcharts 演示 http://www.highcharts.com/demo/line-basic 。我想要例如:第一个动作将是一些警报,第二个动作将是默认动作(从图表中清除东京线)。谢谢。对不起,如果问题不干净。

【问题讨论】:

highcharts 有一个很棒的文档,其中包含 jsfiddle 示例,我确定您正在寻找的就是:highcharts.com/ref 上述更新的链接不再起作用。 api.highcharts.com/… 【参考方案1】:

你必须像下面的代码一样使用legendItemClick回调

plotOptions: 
        line: 

           events: 
                legendItemClick: function () 
                   alert('I am an alert');
                   //return false; 
                   // <== returning false will cancel the default action
                    
                
            ,
            showInLegend: true
        
    

这里是working fiddle,当您点击东京等图例然后隐藏东京线时会显示警报。

另请参阅plotOptions documentation 了解相关事件。根据您使用的图表类型,您需要放置的位置可能会有所不同。

【讨论】:

是的,就是这个!!感谢您的准确回答:) 禁用图例操作:legendItemClick: function (e) e.preventDefault() 有谁知道在禁用点击后如何将光标更改为图例上的默认值? 找到它:legend:itemStyle: 看来,那个 API 已经改变了,如果这个例子不适合你,请看下面 Tony 的回答。【参考方案2】:

对我来说,legendItemClick 事件必须是针对系列的,而不是针对线的。例如:

plotOptions: 
        series: 
            events: 
                legendItemClick: function(event) 
                    var visibility = this.visible ? 'visible' : 'hidden';
                    if (!confirm('The series is currently '+ 
                                 visibility +'. Do you want to change that?')) 
                        return false;
                    
                
            
        
    ,

来自 Highcharts 的示例: http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/plotoptions/series-events-legenditemclick/

【讨论】:

以上是关于如何修改highcharts图例项点击事件?的主要内容,如果未能解决你的问题,请参考以下文章

Highcharts 饼图设置了显示图例 怎样给图例添加点击事件

Highcharts 图例索引在图例点击时显示 -1

arcgis如何做图例

自定义图例点击事件

echarts重写图例点击事件

v-charts修改点击图例事件,legendselectchanged