Highcharts изменяют функцию прототипа на основе опций - PullRequest
0 голосов
/ 07 января 2019

Я хочу изменить функцию 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 голосов
/ 07 января 2019

Вы можете обернуть его, как описано в « Расширение старших графиков ».

Я не уверен, что такое 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));

См. этот пример JSFiddle этого в действии на двух отдельных Highcharts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...