【发布时间】:2018-04-20 09:38:41
【问题描述】:
我正在使用 HighCharts Custom Events Module(但即使不使用它,我的问题仍然是一样的)并且我将相同的事件/函数绑定到我的每个元素(系列、yAxis 等......)和它越来越重复:
...
yAxis: [
{
labels: {
format: "{value}°C"
},
title: {
text: "Temperature",
events: {
click: function (event) {
foo(event);
},
dblclick: function (event) {
foo(event);
},
contextmenu: function (event) {
foo(event);
}
}
},
id: "temperature",
labels: {
events: {
click: function (event) {
bar(event);
},
dblclick: function (event) {
bar(event);
},
contextmenu: function (event) {
bar(event);
}
}
}
},
{
labels: {
format: "{value}km"
},
title: {
text: "Width",
events: {
click: function (event) {
foo(event);
},
dblclick: function (event) {
foo(event);
},
contextmenu: function (event) {
foo(event);
}
}
},
id: "temperature",
labels: {
events: {
click: function (event) {
bar(event);
},
dblclick: function (event) {
bar(event);
},
contextmenu: function (event) {
bar(event);
}
}
}
}
...
],
我什至允许使用添加更多(再次,yAxis、系列等......“渲染后”)。
这就是为什么我想知道是否有更“全局方式”将事件绑定到给定图表的每个 yAxis、series、...。类似于
Highcharts.setOptions({ // Apply to all charts
series: { //hypothetically
events: {
click: function (event) {
foo(event)
}
}
}
});
我还考虑过在渲染系列后创建某种更新回调,例如
Highcharts.setOptions({ // Apply to all charts
events: {
addSeries: function (event) {
event.update(
{events{
click: function(event){
foo(event);
}
}
}, false);
}
}
});
但这更像是一种黑客攻击
这个问题并不重要,更多的是出于好奇,但同时,它会让我的(糟糕的)代码更清晰^^
感谢您的阅读。
【问题讨论】:
标签: javascript events highcharts shared custom-events