Я хотел бы иметь возможность переключать видимость легенды диаграммы, когда пользователь нажимает кнопку.
Я попытался скрыть легенду, используя недокументированный метод 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();
}
});