14

我正在尝试在创建 highcharts 对象后向其添加事件侦听器。我可以在声明时添加一个。当我尝试使用 chrome 控制台来整理在哪里附加监听器后声明时,我不能。

4

1 回答 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 回答