2013-06-24 2 views
10

Ich versuche, ein Ereignis-Listener zu einem Highcharts-Objekt hinzuzufügen, nachdem es erstellt wurde. Ich kann einen bei der Deklaration hinzufügen. Wenn ich versuche, die Chrome-Konsole zu verwenden, um herauszufinden, wo eine Listener-Post-Deklaration angehängt werden soll, kann ich das nicht.Wie füge ich einem Highcharts-Objekt einen Ereignis-Listener hinzu * NACH * Ich habe es erstellt

+0

Warum müssen Sie einen Ereignis-Listener hinzufügen, nachdem das Diagramm erstellt wurde? – NT3RP

Antwort

29

Wenn Sie einen Ereignis-Listener hinzufügen möchten, nachdem das Diagramm bereits erstellt wird, bietet die Dokumentation einen Einblick in Bezug auf extending highcharts:

Ereignisse zum Beispiel durch Rahmen Ereignis hinzugefügt werden können, verbindlich. Wenn Ihr Rahmen ist jQuery, können Sie zum Beispiel laufen $(chart).bind('load', someFunction);

Es gibt sogar einige Erwähnung in den „Einhaken bis Chart.init“ Abschnitt (auf der gleichen Seite), wie Sie binden könnten ein Ereignis nach dem Diagramm, aber es ist eine invasivere Lösung.

// 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); 

Sie können auch take a look at their example JSFiddle für dieses Szenario: Ich habe die Code-Beispiel unten mit einigen Änderungen angepasst.

+2

Danke! Kann jemand anderes bitte diese Antwort abstimmen? Ich habe die Frage gestellt, habe aber nicht genug Punkte dafür. –

+0

Sie können diese Antwort auch akzeptieren (wenn es für Sie funktioniert), indem Sie auf das Häkchen neben meiner Antwort klicken. – NT3RP

+0

ok. Habe ich, danke. –

Verwandte Themen