Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highcharts手动设置legendItemClick事件_Javascript_Jquery_Highcharts - Fatal编程技术网

Javascript Highcharts手动设置legendItemClick事件

Javascript Highcharts手动设置legendItemClick事件,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我需要设置plotOptions->events->legendItemClick,但在单击按钮时手动设置 我想它应该是类似于chart.plotOptions.events.legendItemClick=function(){…};但这显然不是解决办法 我甚至不确定这是否可行,我只能在图表创建中实现它 对此,我们非常感谢您的指导。谢谢 通过创建在highcharts中设置: plotOptions: { series: { events: {

我需要设置plotOptions->events->legendItemClick,但在单击按钮时手动设置

我想它应该是类似于chart.plotOptions.events.legendItemClick=function(){…};但这显然不是解决办法

我甚至不确定这是否可行,我只能在图表创建中实现它

对此,我们非常感谢您的指导。谢谢

通过创建在highcharts中设置:

plotOptions: {
    series: {
        events: {
            legendItemClick: function() {
                // 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;
    }
}
功能(事件){
var e=document.getElementById(“&gModeElementId&”);
var strGraphMode=e.options[e.selectedIndex].value;
如果(strGraphMode=='single'){
var seriesIndex=该指数;
var serie=this.chart.series;
对于(i=0;i

我们还没有找到一种方法来实际修改现有的
legendItemClick
函数。

我们这样做,但是在
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;
    }
}
功能(事件){
var e=document.getElementById(“&gModeElementId&”);
var strGraphMode=e.options[e.selectedIndex].value;
如果(strGraphMode=='single'){
var seriesIndex=该指数;
var serie=this.chart.series;
对于(i=0;i

我们还没有找到一种方法来实际修改现有的
legendItemClick
函数。

不清楚您在问什么。您可以设置
legendItemClick
功能来执行您想要的操作,是的。但是,没有看到代码,我们就不知道那是什么。我认为你想要的是在点击HTML按钮时触发legendItemClick?在创建highcharts时声明它不是问题。我想在创建后声明它。问题不是我在事件legendItemClick中做了什么,而是我如何在执行此操作时通过图表变量设置它。var chart=$(“#容器”).highcharts();chart.plotOptions.series.legendItemClick=function(){…};这种方法行不通,需要知道是否有可能这样做。不清楚你在问什么。您可以设置
legendItemClick
功能来执行您想要的操作,是的。但是,没有看到代码,我们就不知道那是什么。我认为你想要的是在点击HTML按钮时触发legendItemClick?在创建highcharts时声明它不是问题。我想在创建后声明它。问题不是我在事件legendItemClick中做了什么,而是我如何在执行此操作时通过图表变量设置它。var chart=$(“#容器”).highcharts();chart.plotOptions.series.legendItemClick=function(){…};这种方法不起作用,需要知道是否有可能这样做。“我们还没有找到一种方法来实际修改现有的legendItemClick函数。”这正是我想要的答案,但我并不希望如此。谢谢你的详细回答。我想我必须制定另一个策略。我应该注意,我们是从.NET后端构建的(因此
getElementById(“&gModeElementId&”)
)。所以,如果您这样做了,您可以动态地构建函数。或者,让
legendItemClick
函数成为您在页面上编写的其他函数。但是,是的,这是一个创建一次并不幸地处理它的事情。this.chart.series部分对我很有用。谢谢“我们还没有找到一种方法来实际修改现有的legendItemClick函数。”这正是我想要的答案,但我并不希望如此。谢谢你的详细回答。我想我必须制定另一个策略。我应该注意,我们是从.NET后端构建的(因此
getElementById(“&gModeElementId&”)
)。所以,如果您这样做了,您可以动态地构建函数。或者,让
legendItemClick
函数成为您在页面上编写的其他函数。但是,是的,这是一个创建一次并不幸地处理它的事情。this.chart.series部分对我很有用。谢谢