2013-04-18 12 views
13

Więc mam kilka wniosków od naszych projektantów:Highcharts - Jak programowo przełączanie elementów legendy i określić, które elementy są zaznaczone

1) Zezwalaj użytkownikom, aby wybrać/odznaczyć wszystkie elementy legendy poprzez kliknięcie linku poza wykresem pojemnik. Oznacza to, że muszę programowo włączać i wyłączać wszystkie elementy na wykresie, niezależnie od tego, czy są one aktualnie zaznaczone/odznaczone.

2) Określ, które elementy legendy są zaznaczone (lub włączone) na wykresie, abyśmy mogli wygenerować kolejny wykres z zaznaczeń.

Nie widzę sposobu, aby zrobić za pomocą interfejsu API, więc zastanawiałem się, czy ktoś ma wymyślić możliwe rozwiązanie dla obu (lub obu).

Z góry dziękuję za wskazówki.

Odpowiedz

20

Highcharts pozwala nam przełączać stany legend z zewnątrz.

series[0].hide(); series[0].show(); są dostarczane za pośrednictwem zaawansowanych, które możemy wykorzystać do wdrożenia żądanej funkcjonalności.

o to skrzypce celach http://jsfiddle.net/gfNYk/1/

2

serii [i] .Visible Właściwość ta jest własnością

2

Jeśli masz dużo serii, Hide() i show() może spowodować w bardzo złym wykonaniu. Alternatywnie możesz użyć setVisible() dla każdej serii i przerysować() na końcu.

$('#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(); 
    }); 

aby określić, czy jest wybrany cykl można użyć właściwości series.visible

Powiązane problemy