如何向Highcharts对象添加事件侦听器* AFTER *我已创建它

时间:2013-06-24 14:07:18

标签: highcharts

我正在尝试在创建高级图表对象后向它添加一个事件监听器。我可以在声明中添加一个。当我尝试使用chrome控制台来解决附加监听器帖子声明的位置时我不能。

1 个答案:

答案 0 :(得分:34)

如果您想在创建图表后添加事件监听器,则文档会提供有关extending highcharts的一些见解:

  

可以通过框架事件绑定将事件添加到实例中。如果您的框架是 jQuery ,则可以运行$(chart).bind('load', someFunction);

“连接到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);

对于此方案,您还可以take a look at their example JSFiddle