我正在尝试在创建 highcharts 对象后向其添加事件侦听器。我可以在声明时添加一个。当我尝试使用 chrome 控制台来整理在哪里附加监听器后声明时,我不能。
问问题
11163 次
1 回答
39
如果要在创建图表后添加事件侦听器,文档提供了有关扩展 highcharts的一些见解:
事件可以通过框架事件绑定添加到实例中。如果您的框架是jQuery,您可以例如运行
$(chart).bind('load', someFunction);
在“Hooking up to Chart.init”部分(在同一页面上)中甚至提到了如何在图表呈现后绑定事件,但它是一种更具侵入性的解决方案。我对下面的代码示例进行了一些修改:
// General, global event listener
var globalCallback = function (chart) {
// Specific event listener
Highcharts.addEvent(chart.container, 'click', function (e) {
e = chart.pointer.normalize();
console.log('Clicked chart at ' + e.chartX + ', ' + e.chartY );
});
// Specific event listener
Highcharts.addEvent(chart.xAxis[0], 'afterSetExtremes', function (e) {
console.log('Set extremes to ' + e.min + ', ' + e.max);
});
}
// Add `globalCallback` to the list of highcharts callbacks
Highcharts.Chart.prototype.callbacks.push(globalCallback);
您还可以查看他们针对此场景的示例 JSFiddle。
于 2013-06-24T21:57:27.927 回答