ユーザーがボタンをクリックしたときに、グラフの凡例の表示を切り替えられるようにしたいと考えています。
文書化されていないdestroy()
方法を使用して凡例を非表示にしようとしましたが、凡例とその項目を再レンダリングしようとすると、凡例内ではなくグラフの左上に項目が表示されます。また、アイテムにはイベント ハンドラーが関連付けられていないようです (アイテムをクリックしても、シリーズがトグルされなくなりました)。
これを行うより良い方法はありますか?SVG と VML の両方の実装をサポートする必要があるため、両方に対応するソリューションを探しています。
$('#updateLegend').on('click', function (e) {
var enable = !chart.options.legend.enabled;
chart.options.legend.enabled = enable;
if (!enable) {
chart.legend.destroy(); //"hide" legend
} else {
var allItems = chart.legend.allItems;
//add legend items back to chart
for (var i = 0; i < allItems.length; i++) {
var item = allItems[i];
item.legendItem.add();
item.legendLine.add();
item.legendSymbol.add();
}
//re-render the legend
chart.legend.render();
}
});