高图根据选项更改原型功能

时间:2019-01-07 12:12:53

标签: javascript highcharts

我想更改Highcharts的功能。

H.Pointer.prototype.reset

这是我的例子:

var orignalReset = H.Pointer.prototype.reset;

H.Pointer.prototype.reset = function (e) {
  if(this.options.tooltip.syncronized){
    return undefined;
  }else{
    orignalReset();
  }
};

问题:通过这种方法,我无法传递this参考。 分配给变量已失去与原始方法/类的连接。

1 个答案:

答案 0 :(得分:1)

您可以按照“ Extending highcharts”中的说明进行包装。

我不确定tooltip.syncronized是什么,因此我以tooltip.shared为例。例如,如果共享了工具提示,则可以包装Pointer.reset函数不执行任何操作,否则可以执行正常的操作,例如:

(function (H) {
  H.wrap(H.Pointer.prototype, 'reset', function (proceed, allowMove, delay) {
    if(this.chart.options.tooltip.shared) {
        console.log('shared: not doing anything.');
    }
    else {
      console.log('not shared: normal behavior.');
      proceed.apply(this, Array.prototype.slice.call(arguments, 1));
    }
  });
}(Highcharts));

在两个单独的Highcharts上查看this JSFiddle example的作用。