gpt4 book ai didi

javascript - 在 Highcharts 中动态附加 onload 或 redraw 事件函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:04:04 27 4
gpt4 key购买 nike

我需要在 Highcharts 中动态附加 onload 或 redraw 事件函数,我知道在配置步骤中进行,例如:

$('#container').highcharts({
chart: {
events: {
load: function(event) {
function1();
function2();
function3();
},
redraw: function(event) {
functionA();
functionB();
functionC();
}
}
},
xAxis: {
},
series: [{
data: [29.9, 71.5]
}]
});

但我需要在配置图表后执行此操作(因为我无权访问配置图表步骤,图表通过包装器进入我的代码)并且我需要执行如下操作:

//The wrapper simulation
^
|
|
/////////////////////////////////////////
//$('#container').highcharts({ //
// chart: { //
// events: { //
// load: function(event) { //
// function1(); //
// }, //
// redraw: function(event) { //
// functionA(); //
// } //< "I dont't have access to this code"
// } //
// }, //
// xAxis: { //
// }, //
// series: [{ //
// data: [29.9, 71.5] //
// }] //
//}); //
/////////////////////////////////////////

//I only have the container id in my hands, I can get the highchart object:
$('#container').highcharts();

//And I need to do something like this:
appendOnLoadEvent(function2);
appendOnLoadEvent(function3);

appendOnRedrawEvent(functionB);
appendOnRedrawEvent(functionC);

这可能吗?

最佳答案

最简单的方法是创建您在第一个示例中描述的事件,并在这些函数中从一个数组中执行所有必要的事件处理程序。

类似于:

  var redrawCallbacks = [];

$(...).highcharts({
chart: {
events: {
redraw: function(event) {
for (var i = 0; i < redrawCallbacks.length; ++i) redrawCallbacks[i].call(this, event);
}
}
}});

查看完整示例:http://jsfiddle.net/5S6hF/2/

更新
假设您正在使用默认的 jQuery 适配器,您可以稍后定义事件:

$(chart).on('redraw', function(){ alert('new event handler'); });

参见 http://jsfiddle.net/5S6hF/6/ 的演示

关于javascript - 在 Highcharts 中动态附加 onload 或 redraw 事件函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336432/

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