1

我需要设置 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
}
4

1 回答 1

4

我们这样做,但在其legendItemClick自身之内。这对我们有用,因为我们只有 2 个状态。第一个是初始加载,我们让使用默认图例单击操作构建图表(所有系列都是可见的,单击图例中的系列会隐藏该系列,再次单击该系列会显示它)。另一种状态是当用户在 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函数的方法。

于 2013-11-12T20:57:59.193 回答