javascript - Highcharts - 动态获取可见系列名称

标签 javascript php highcharts twig symfony

我想制作一个函数,将 Highchart 实例中的所有可见系列名称动态发送到 PHP 函数。 例如,在此图表中,我想获取此数组:[Salle, PR]。 如果我点击 Internet,系列就会变得可见,我想获得 [Salle, Internet, PR]。

为此,我尝试使用 legendItemClick 事件并创建一个函数来检查每个系列是否可见以将其添加到数组中,但我不知道如何使用可见选项来执行此操作。

你有什么想法吗?

到目前为止,我没有太多代码可以分享:

plotOptions: {
        series: {
            events: {
                legendItemClick: function(){

                }
            }
        }
    }

enter image description here

最佳答案

如果您像这样保留指向图表的指针:

var ch = Highcharts.chart(_chart_data_);

然后您可以访问整个图表结构。您会感兴趣的是系列数组。

ch.series[]

它包含您所有系列的数组。 visible 属性设置为 true 的系列是当前显示的系列。所以,它可能是这样的:

var ch = Highcharts.chart(...

plotOptions: {
        series: {
            events: {
                legendItemClick: function(){
                   ch.series.forEach(function(sr){
                         if(sr.visible){
                            console.log(sr.name, "visible!");
                         }
                   });
                }
            }
        }
    }

...);

但是,您的方法有一个问题,即在实际图例上单击您对图例的当前操作尚未处理。因此您将看到的输出是当前点击之前的先前状态的输出。

因此,出于这个原因,您可以尝试在事件应用后使用 setTimeout 来获取您的列表:

         events: {
            legendItemClick: function(){
               setTimeout(
                  function(){ 
                      ch.series.forEach(
                          function(sr){
                              if(sr.visible){
                                 console.log(sr.name, "visible!");
                              }
                           }
                       )
                    },20);
                }
            }

试试这个并检查控制台日志:http://jsfiddle.net/op8142z0/

关于javascript - Highcharts - 动态获取可见系列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41350990/

相关文章:

javascript - 无法通过 Perl 抓取/抓取使用 javascript 的网页

javascript - Highchart 中多个标签的问题

javascript - then 函数在所有异步调用执行之前执行

php - 在 $row 中提取特定记录

php - Laravel:如何使用 Eloquent 方式在数据库中搜索给定的字符串?

php - wordpress 的联系表单 7 插件中未设置值

指定类别时 highcharts 刻度位置不正确

php - 如何使用 Highcharts 导出整个页面或 html 内容而不仅仅是图表?

javascript - 比较 javascript 日期

javascript - 根据对象属性过滤数组