为什么这两个HighCharts代码不相等? (或者是否可以在创建图表对象后修改对legendItemClick的调用?)

问题描述 投票:0回答:1

有人知道为什么这两个摘要根本不一样吗?

在第一个代码段中,我在JSON中声明了一个函数:

                    plotOptions : {
                    series : {
                        events: {
                            legendItemClick: function () {
                                var visibility = this.visible ? 'visible' : 'hidden';
                                if (this.visible) {
                                    this.chart.container.style.height = '100px';
                                    this.chart.reflow();
                                }
                                else {
                                    this.chart.container.style.height = '400px';
                                    this.chart.reflow();
                                }
                                //this.chart.collapse();
                            }
                        }
                    }
                },

在此处查看代码段:first snippet on jsfiddle

N.B .:如果您将文件内容保存在硬盘上,则在chrome上效果更好。

如果单击图例,您将看到它会折叠图形(称为函数)。在第二个片段中,我稍后在以下位置声明该函数:

                plotOptions : {
                    series : {
                        events: {
                        }
                    }
                },

    myChart.options.plotOptions.series.events.legendItemClick = function () {
        var visibility = this.visible ? 'visible' : 'hidden';
        if (this.visible) {
            this.chart.container.style.height = '100px';
            this.chart.reflow();
        }
        else {
            this.chart.container.style.height = '400px';
            this.chart.reflow();
        }
        //this.chart.collapse();
    };

请参见此处的代码段:second snippet on jsfiddle

在这种情况下,如果单击图例,将不会调用该函数,并且图形也不会折叠。

我猜答案在highcharts.js中的某个地方,但是在哪里?在查看Highcharts.Legend API文档时,我看不到该怎么办:https://api.highcharts.com/class-reference/Highcharts.Legend#toc0

创建图表对象后,是否可以修改对legendItemClick的调用?

p.s .:顺便说一下,在调试器中查看myChart.options.plotOptions.series.events.legendItemClick时,我看到的是完全相同的两段代码:

enter image description here

javascript highcharts
1个回答
0
投票
  1. 注意,第二个功能没有任何作用。默认功能正在触发。
  2. 如果要自定义默认功能,则应考虑使用Event.preventDefault
© www.soinside.com 2019 - 2024. All rights reserved.