2011-12-05 1 views
4

タイトルは実質的にすべてです。ここに私が何を望んでいるのかを説明した画像があります。legendItemClickコールバックの合計チャート値を更新するにはどうすればよいですか?

on series "show/"hide" I would like to update the "Chart total row below the chart (click for an image explanation)

ここで私は、これまで使用しHighcharts設定の一部だが、stackTotalプロパティは全体の合計が含まれているため、それも隠されている項目で、間違って合計を計算します。

plotOptions: { 
    series: { 
     events: { 
      legendItemClick: function(event) { 
       // if visible, sum == 0, because this series will be hidden 
       // if hidden, sum == total, because this series will be shown 
       var sum = (this.visible ? this.data[0].stackTotal : 0), 
        index = this.index; 
       $.each(this.chart.series, function(){ 
       if (this.visible && this.index != index) { 
        sum += this.data[0].stackTotal; 
       } 
       }); 
       $('.chart_total', '#doc_chart').text(sum); 
      } 
     } 
    } 
    }, 

グラフの適切な合計を表示するにはどうすればよいですか?

答えて

6

このサンプルがjsfiddleであるかどうかを確認してください。

legendItemをクリックすると、ハンドラはchartTotal = 0で始まり、チャートの各シリーズをループします。

ループにおける現在のシリーズは、をクリックします1(series.indexを使用してチェック)それはseriesTotalを計算し、それが目に見えるだ場合にのみchartTotalに追加されていない場合。

現在のシリーズはをクリックしますものであればそうでない場合は、それは見えるようになるだろう場合にのみchartTotalにそれはseriesTotalだ追加されます。

最後に、表示を値chartTotalで更新します。

+0

これはまさに私が探していたものです。 – Mike

+0

ようこそ@Mike。 –

+1

これは他の場所で利用可能なフィドルですか?現在のリンクは404 ...ありがとうございます。 – santuxus

関連する問題