Ich möchte die Sichtbarkeit der Legende eines Diagramms ändern können, wenn der Benutzer auf eine Schaltfläche klickt.Highcharts: Legende ein- und ausblenden
Ich habe versucht, die Legende Ausblenden die undokumentierten destroy()
Methode verwenden, aber wenn ich versuche, die Legende neu zu machen und es ist Artikel, erscheinen die Elemente in der oberen linken Ecke des Diagramm statt in der Legende. Die Objekte scheinen auch keine ihrer Event-Handler angehängt zu haben (ein Klick auf einen Gegenstand schaltet nicht länger eine Reihe um).
Gibt es einen besseren Weg, dies zu tun? Ich muss sowohl SVG- als auch VML-Implementierungen unterstützen und suche daher nach einer Lösung, die beides angeht.
$('#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();
}
});
in der Tat gab es einen noch besseren Weg. Siehe meine Lösung. – floww