我需要设置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函数。

09-30 12:09