【问题标题】:How to pass an argument into a Highcharts-Function如何将参数传递给 Highcharts-Function
【发布时间】:2016-02-04 17:24:21
【问题描述】:

我尝试在 Highcharts-Chart 中绘制一些线条(路径)。导出图表时,线条应该略有不同。因此我创建了一个 Highcharts-Function,我调用 »load« 和 »redraw«。我只需要在调用函数时传递一个小参数,但这不起作用。如何传递参数?

这里是相关的代码细节:

Highcharts.linien = function (r) { //generating the lines with my r-argument }

...

chart: {
   events: {
   load: Highcharts.linien(0)
}

exporting: {
    chartOptions: {
        chart: {
        events: {
            load: Highcharts.linien(15)
        }
    }
}

这是一个有效的jsFiddle,不使用参数。

另外:如果有人知道如何在 »redraw« 上销毁我的 svg-group (linienGruppe),我也将不胜感激!

【问题讨论】:

    标签: javascript highcharts


    【解决方案1】:

    应该有:

    chart: {
      events: {
        load: function(){
          Highcharts.linien.call(this, 0);
        }
      }
    }
    
    exporting: {
      chartOptions: {
        chart: {
          events: {
            load: function(){
              Highcharts.linien.call(this, 15);
            }
          }
        }
      }
    }
    

    因此,使用 call() 您可以将 this 对象传递给您的函数。

    关于销毁组,首先将您的组存储在某个位置,以便稍后您可以销毁该对象,如下所示:

    if(this.linienGruppe) {
        this.linienGruppe.destroy();
    }
    
    this.linienGruppe = linienGruppe;
    

    还有工作演示:http://jsfiddle.net/t3ywb3gq/4/

    【讨论】:

      【解决方案2】:

      Highcharts.linien(0) & Highcharts.linien(15) 都是函数执行/调用,而不是处理程序。处理程序本身就是一个函数。由于您想传递一个参数,我建议您创建一个内联匿名函数,其中一行调用您创建的方法并使用适当的参数,如下所示;

      chart: {
         events: {
         load: function(){
             Highcharts.linien(0);
         }
      }
      
      exporting: {
          chartOptions: {
              chart: {
              events: {
                  load: function(){
                     Highcharts.linien(15);
                  }
              }
          }
      }
      

      updated jsFiddle

      【讨论】:

      • 我已经尝试过了,但是正如您在小提琴中看到的那样,这也不起作用。线条没有被渲染。控制台显示:»Uncaught TypeError: Cannot read property 'g' of undefined«,和直接调用Highcharts.linien(0)一样。
      猜你喜欢
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 2015-06-21
      相关资源
      最近更新 更多