igDataChart の積層型エリアチャートにおいて、凡例でクリックされたシリーズの表示/非表示を切り替える方法をご紹介します。
1.判例上でクリックされたシリーズ名を取り出します。
2.igDataChart にバインドしているデータソース内の、クリックされたシリーズ名を書き換え、データを再バインドします。これにより、igDataChart のシリーズ名とデータソースのシリーズ名が一致しなくなるため、クリックされたシリーズは igDataChart 上に表示されなくなります。
実装例
function toggleSeriesVisibility(seriesName) { // 非表示対象のシリーズデータには、prefix として "_" を加える。 // これにより、igDataChart にデータを再バインドすると、シリーズが非表示になる。 // また、prefix の "_" を取り除くことで、シリーズを再表示する。 var newData = lastFiveYears.map(function (item) { if (item["_" + seriesName] === undefined) { item["_" + seriesName] = item[seriesName]; delete item[seriesName]; } else { item[seriesName] = item["_" + seriesName]; delete item["_" + seriesName]; } return item; }); // データソースの更新 $("#stackedArea").igDataChart("option", "dataSource", newData); } // 凡例要素をクリックした際のイベント $(document).delegate(".ui-chart-legend-item", "click", function (evt) { // クリックされた凡例のテキスト(シリーズ名)を取得する。 var seriesName = $(evt.currentTarget).find("span").text(); toggleSeriesVisibility(seriesName); });