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

在第一个代码段中,我在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的调用?

附言:顺便说一句,在调试器中查看myChart.options.plotOptions.series.events.legendItemClick时,我看到了完全相同的两个片段:

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

最佳答案

请注意,第二个功能不执行任何操作。默认功能正在触发。
如果要自定义默认功能,则应考虑使用Event.preventDefault

关于javascript - 这两个HighCharts代码为什么不相等? (或者是否可以在创建图表对象之后修改对legendItemClick的调用?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58997991/

10-16 15:29