2

チェックボックスの選択に基づいてシリーズを切り替えたいシナリオがあります。次のような凡例オプションのlabelFormattingを使用して、凡例にチェックボックスを追加しました。

     var otherOptions = {
                           legend: {
                                     container: legend,
                                     labelFormatter: function (label, series) {
                                        var cb = '<input type="checkbox" name="' + label + '" checked="checked" id="id' + label + '"> ' + label;
                                        return cb;
                                     }
                            },
                         };  

また、凡例のクリック イベントを追加して、チェックされたアイテムに基づいてシリーズを操作できるようにしました。凡例のラベルのチェックを外した場合を除いて、すべて正常に機能します。再描画すると、その系列線も凡例から削除されます。たとえば、以下は前後の画像です。

前

後

後の画像に「USA」チェックボックスがないことに注意してください。チェックされていない「USA」チェックボックスを凡例に表示する方法はありますか?

ここで提案を見ました:フロートグラフ、凡例を使用してシリーズのオン/オフを切り替えます

しかし、唯一の問題は、凡例とチェックボックスの凡例を分けたくないということです。指定されたリンクの質問は1年以上前に回答されたので、誰かがこれを行う方法を知っている場合に備えて、チャンスをつかんでもう一度質問すると思いました.

私にお知らせください。

ありがとう!

4

2 に答える 2

6

チェックボックスがオフの場合、シリーズをすべて削除する代わりに、空のデータを追加します。

このようなもの:

function plotByChoice(doAll)
{
  $('#legend .legendCB').each(
   function(){
     if (this.checked)
     {         
       data.push(datasets[someLabel]);
     }
     else
     {
       data.push({label: someLabel, data: []})
     }        
   }
 );

 // plot call etc...
}  

ワーキングフィドルはこちらです。

于 2012-04-05T15:57:21.393 に答える