Демо-версия Я основываю свой проект на here.Проблема с высокими диаграммами на jsfiddle, где серия не удаляется на развертке
Я изменил это для своей страны и информации, но проблема существует для функции сверления.
Размножение шаги: Откройте jsfiddle в ссылке выше и нажмите на CA (Калифорния) на карте, затем нажмите кнопку «< Назад к США»
Далее нажмите где-нибудь еще на западном побережье, чтобы увидеть что сверление калифорнии не было удалено с карты. Мне нужно, чтобы они были удалены после нажатия кнопки «Назад».
Вот основная часть кода:
Highcharts.mapChart('container', {
chart: {
events: {
drilldown: function (e) {
if (!e.seriesOptions) {
var chart = this,
mapKey = 'countries/us/' + e.point.drilldown + '-all',
// Handle error, the timeout is cleared on success
fail = setTimeout(function() {
if (!Highcharts.maps[mapKey]) {
chart.showLoading('<i class="icon-frown"></i> Failed loading ' + e.point.name);
fail = setTimeout(function() {
chart.hideLoading();
}, 1000);
}
}, 3000);
// Show the spinner
chart.showLoading('<i class="icon-spinner icon-spin icon-3x"></i>'); // Font Awesome spinner
// Load the drilldown map
$.getScript('https://code.highcharts.com/mapdata/' + mapKey + '.js', function() {
data = Highcharts.geojson(Highcharts.maps[mapKey]);
// Set a non-random bogus value
$.each(data, function (i) {
this.value = i;
});
// Hide loading and add series
chart.hideLoading();
clearTimeout(fail);
chart.addSeriesAsDrilldown(e.point, {
name: e.point.name,
data: data,
dataLabels: {
enabled: true,
format: '{point.name}'
}
});
});
}
this.setTitle(null, { text: e.point.name });
},
drillup: function() {
this.setTitle(null, { text: 'USA' });
}
}
},
Я знаю один способ сделать это, и это, делая window.history.go (-1) в функция сверления, но это устраняет масштабирование графики и разбивает кнопку после одного щелчка. history.go (-1) не разбивает кнопку, но не работает должным образом после одного щелчка.
Я нашел аналогичную проблему здесь: Proper way to remove all series data from a highcharts chart?, но это касается гистограммы, поэтому код отличается.
Решение этой проблемы заключается в изменении
for (var i = 0; i < chart.series.length; i++)
в
while(chart.series.length > 0)
chart.series[0].remove(true);
Я думал, что не экономить кэш на jsfiddle может решить эту проблему тоже, но я не мог получить, что работать либо.
Любая помощь будет отличной. Благодарю.