我需要设置plotOptions-> events-> legendItemClick,但要手动单击按钮。
我虽然会像chart.plotOptions.events.legendItemClick = function(){...};但这显然不是解决方案。
我什至不确定这是否可行,我只需要在创建图表时实施它。
非常感谢对此的任何指导。谢谢。
通过创建设置高图:
plotOptions: {
series: {
events: {
legendItemClick: function() {
// Do something
}
}
}
}
我想做什么...(创建后)
var chart = $('#container').highcharts(); // Get the highcharts
// This doesn't work
chart.plotOptions.series.legendItemClick = function() { // Set the legendItemClick
// Do something
}
最佳答案
我们这样做,但是在legendItemClick
本身内。这对我们有用,因为我们只有两个状态。第一个是初始加载,我们让使用默认图例单击操作构建的图表(所有系列都可见,单击图例中的系列将隐藏该系列,再次单击该系列将显示它)。另一种状态是当用户在ddl中选择了显示选项时,该显示选项将除去一个系列以外的所有内容都可见,然后用户可以单击图例项并仅显示该项。我们这样做:
function(event) {
var e = document.getElementById('" & gModeElementId & "');
var strGraphMode = e.options[e.selectedIndex].value;
if (strGraphMode == 'single') {
var seriesIndex = this.index;
var serie = this.chart.series;
for (i = 0; i < serie.length; i++) {
if (serie[i].index == seriesIndex) {
serie[i].show();
var ctitle = this.chart.yAxis[0].axisTitle;
ctitle.attr({text: serie[i].name});
} else {
serie[i].hide();
}
}
return false;
}
}
我们还没有找到一种方法来实际修改现有的
legendItemClick
函数。