gpt4 book ai didi

javascript - highcharts 覆盖 addEvent 函数

转载 作者:行者123 更新时间:2023-11-29 15:39:27 25 4
gpt4 key购买 nike

highcharts javascript file第 1126 行有一个函数 addEvent

/**
* Add an event listener
* @param {Object} el A HTML element or custom object
* @param {String} event The event type
* @param {Function} fn The event handler
*/
addEvent: function (el, event, fn) {
$(el).bind(event, fn);
},

我想调用我的自定义函数而不是默认函数,同时我不想更改 highcharts.js。

我想通过外部函数赋值,有什么办法可以实现吗??

我的新代码将是

addEvent: function (el, event, fn) {
if(typeof(fn)=="string"){
try {
eval(fn);
} catch (e) {
if (e instanceof SyntaxError) {
console.log(e.message);
}
}

}
$(el).bind(event, fn);
}

最佳答案

不幸的是,我不知道为什么包装 addEvent 不起作用(虽然应该!),但您可以覆盖或包装 point 的 importEvents 来做类似的事情(但仅限于 points):

(function (H) {
H.wrap(H.Point.prototype, 'importEvents', function () {
if (!this.hasImportedEvents) {
var point = this,
options = H.merge(point.series.options.point, point.options),
events = options.events,
eventType;

point.events = events;

for (eventType in events) {
if (typeof events[eventType] == "string") {
try {
events[eventType] = eval(events[eventType]);
} catch (e) {
if (e instanceof SyntaxError) {
console.log(e.message);
}
}
}
H.addEvent(point, eventType, events[eventType]);
this.hasImportedEvents = true;
}
}
});
}(Highcharts));

演示:http://jsfiddle.net/cXS5u/

关于javascript - highcharts 覆盖 addEvent 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com