2009-11-11 12 views
6

Grałem trochę z flot.js w celu wykreślenia niektórych danych, ale mam sporo serii danych, więc użytkownik może chcieć ukryć niektóre serie. Jeden z przykładów flota pokazuje, jak przełączać serie danych za pomocą pól wyboru. Chciałbym kliknąć na małe pole koloru lub etykietę legendy, aby przełączyć widoczność tej serii. Czy to jest możliwe?Przełącz serie danych, klikając legendę na flocie?

+0

Myślę, że znalazłem odpowiedź. http://groups.google.com/group/flot-graphs/browse_thread/thread/8c1e7c2426e47e08/5bd0129a88f92f06?lnk=gst&q=toggle+series#5bd0129a88f92f06 – pojo

+0

zobaczyć również http://stackoverflow.com/questions/4230945/ Flot-graph-use-legenda-by-włączyć-wyłączyć-serial – ericslaw

Odpowiedz

4

Oto przykład, który korzysta z wyboru http://people.iola.dk/olau/flot/examples/turning-series.html

To może być zmodyfikowane, aby umieścić zdarzenie kliknij na każdej legendLabel, ale można byłoby tylko w stanie pokazać jedną legendę naraz.

pomocą czegoś takiego w gotowej funkcji


$('.legendLabel').click(
function(d){ 
    var country = $(this).html().toLowerCase(); 
      var data = [ ]; 
    //alert(country); 
    data.push(datasets[country]); 

     if (data.length > 0) 
      $.plot($("#placeholder"), data, { 
       yaxis: { min: 0 }, 
       xaxis: { tickDecimals: 0 } 
      }); 

} 
);
0

jestem po prostu powrót do programowania i nie jestem zbyt obeznany z AJAX i tym podobne, tak I wdrożone moje rozwiązanie z javascript. Możesz używać logiki, aby robić to, czego szukasz.

<html> 
<head> 
<script type="text/javascript"> 
<!-- 
    function toggle_visibility(id) { 
     var e = document.getElementById(id); 
     if(e.style.display == 'block') 
      e.style.display = 'none'; 
     else 
      e.style.display = 'block'; 
    } 
//--> 
</script> 
</head> 

<body> 

<fieldset> 
    <legend onclick="toggle_visibility('cm1');">Click Me</legend> 
    <div id="cm1"> 
     <p>I toggle when the legend is clicked.</p> 
     <p>But I'm a recalcitrant text node and refuse to toggle.</p> 
    </div> 
</fieldset> 

<fieldset> 
    <legend onclick="toggle_visibility('cm2');">Click Me 2</legend> 
    <div id="cm2"> 
     <p>Toggle me too when the legend is clicked.</p> 
     <p>But I'm a recalcitrant text node and refuse to toggle.</p> 
    </div> 
</fieldset> 
</body> 
</html> 
Powiązane problemy