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