我想更改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
参考。
分配给变量已失去与原始方法/类的连接。
答案 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的作用。