2013-04-18 7 views
13

Also habe ich ein paar Anfragen von unseren Designern haben:Highcharts - Wie programm Toggle-Legende Elemente und bestimmen, welche Elemente ausgewählt sind

1) Benutzern erlauben, alle Legendenelemente über Klicken auf einen Link außerhalb des Diagramms zu aktivieren/deaktivieren Container. Das bedeutet, dass ich alle Elemente in dem Diagramm programmgesteuert ein- oder ausschalten muss, unabhängig davon, ob momentan ausgewählt oder nicht ausgewählt ist.

2) Legen Sie fest, welche bestimmten Legendenelemente im Diagramm ausgewählt (oder aktiviert) sind, damit aus den Selektionen ein weiteres Diagramm generiert werden kann.

Ich sehe keinen Weg, entweder mit der API zu tun, also habe ich mich gefragt, ob jemand eine mögliche Lösung für beide (oder beide) gefunden hat.

Vielen Dank im Voraus für jede Anleitung.

Antwort

20

Mit Highcharts können wir die Legendenzustände von außen umschalten.

series[0].hide(); series[0].show(); werden von Highcharts zur Verfügung gestellt, die wir verwenden können, um die gewünschte Funktionalität zu implementieren.

hier eine Geige für Ihre Referenz

2

Wenn Sie eine Menge Serie haben, hide() und show() kann zur Folge haben in sehr schlechter Leistung. Alternativ können Sie setVisible() für jede Serie und redraw() am Ende verwenden.

$('#uncheckAll').click(function(){ 
     var chart = $('#container').highcharts(); 
     var series = chart.series; 
     for(i=0; i < chart.series.length; i++) { 
      series[i].setVisible(false, false); 
     } 
     chart.redraw(); 
    }); 

    $('#checkAll').click(function(){ 
     var chart = $('#container').highcharts(); 
     var series = chart.series; 
     for(i=0; i < chart.series.length; i++) { 
      series[i].setVisible(true, true); 
     } 
     chart.redraw(); 
    }); 

zu bestimmen, ob eine Serie Sie

die series.visible Eigenschaft verwenden, können ausgewählt ist
Verwandte Themen