Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这两个HighCharts代码不相等?(或者有没有办法在创建图表对象后修改对legendItemClick的调用?)_Javascript_Highcharts - Fatal编程技术网

Javascript 为什么这两个HighCharts代码不相等?(或者有没有办法在创建图表对象后修改对legendItemClick的调用?)

Javascript 为什么这两个HighCharts代码不相等?(或者有没有办法在创建图表对象后修改对legendItemClick的调用?),javascript,highcharts,Javascript,Highcharts,有人知道为什么这两个片段的工作方式完全不同吗 在第一段代码中,我在JSON中声明了一个函数: plotOptions : { series : { events: { legendItemClick: function () { var visibil

有人知道为什么这两个片段的工作方式完全不同吗

在第一段代码中,我在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();
                            }
                        }
                    }
                },
请参见此处的代码片段:

注意:如果你把文件内容保存在硬盘上,chrome浏览器的效果会更好

如果单击图例,您将看到它将折叠调用函数的图形。 在第二个代码段中,我稍后将声明该函数:

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

请参见此处的代码片段:

在这种情况下,如果单击图例,则不会调用函数,图形也不会折叠

我猜答案在highcharts.js的某个地方,但是在哪里呢? 查看Highcharts时,我不知道该怎么办。Legend API文档:

有没有办法在创建图表对象后修改对legendItemClick的调用

p、 顺便说一句,我在查看myChart.options.plotOptions.series.events.LegendItem时看到了完全相同的情况单击调试器中的两个代码段:

请注意,第二个函数什么都不做。默认功能正在触发。 如果要自定义默认功能,应考虑使用
我不认为您可以像更改配置那样,在chart init之后,您可能应该查看文档。一般来说,更改配置绝对是可能的。例如,如果您看到第一个代码片段的结果,或者这篇文章:Hi Sebastian,实际上,最初在第二个函数中,新代码并没有像您提到的那样被触发。多亏了你的建议,我可以超负荷点击legendItem。我现在想要的是能够访问HighChart对象以使用,例如,回流方法。但以下代码正在工作:'document.getElementsByCassName'highcharts-legend-item'[0].addEventListener'click',函数事件{if this.classList.value.包括'highcharts-legend-item-hidden'{window.alert'hello hidden';}else{window.alert'hello visible'}event.preventDefault;},false;'谢谢。你能在在线编辑器上复制这段代码并给我发一个链接吗?
    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();
    };