Highcharts手动设置legendItemClick事件

时间:2013-11-12 16:35:15

标签: javascript jquery highcharts

我需要设置plotOptions - >事件 - > 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
}

1 个答案:

答案 0 :(得分: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函数的方法。