Chciałbym móc przełączać widoczność legendy wykresu, gdy użytkownik kliknie przycisk.Highcharts: Ukryj i pokaż legendę
Próbowałem ukryć legendę przy użyciu nieudokumentowanej metody destroy()
, jednak gdy próbuję ponownie wyrenderować legendę i jej elementy, elementy pojawiają się w lewym górnym rogu wykresu zamiast w legendzie. Wydaje się również, że elementy nie mają dołączonej obsługi zdarzeń (kliknięcie elementu nie powoduje już przełączenia serii).
Czy jest lepszy sposób to zrobić? Muszę obsługiwać zarówno implementacje SVG, jak i VML, więc szukam rozwiązania, które byłoby odpowiednie dla obu.
$('#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();
}
});
w rzeczywistości nie był jeszcze lepszy sposób. zobacz moje rozwiązanie. – floww