4
所有的「系列」
不是真的知道發生了什麼與我的代碼,但我無法刪除所有一系列highcharts我鑽到了。當我調用resetChart函數時,它只能刪除4個系列中的2個,我設置了一個臨時警報來告訴顯示它的刪除內容,並且它僅警告2個系列。無法刪除highcharts
然而,當我刪除行chart.series[i].remove();
警報的所有工作4。 我試過幾種循環數組的方法,即使把它放在相反的位置,但它沒有區別。
如果將下面的代碼複製到的jsfiddle你會明白我的意思
HTML
<div id="container" style="height: 400px; min-width: 600px"></div>
<script type="text/javascript" src="http://www.highcharts.com/js/testing-stock.js"></script>
<script type="text/javascript" src="http://www.highcharts.com/samples/data/usdeur.js"></script>
JQuery的
$(function() {
var chart;
var colors = Highcharts.getOptions().colors,
categories = ['October', 'November'],
name = 'Monthly',
data = [{
y: 22,
drilldown:[{
name: 'Income',
data: [12, 0],
categories: ['Income', 'Expenses']
}, {
name: 'Expenses',
data: [0, 5]
}, {
name: 'Employee',
data: [0, 3]
}, {
name: 'Tax Office',
data: [0, 1]
}]
}, {
y: 21
}];
function setChart(drilldown) {
$.each(chart.series, function(i, val) {
val.remove();
});
if(drilldown) {
chart.xAxis[0].setCategories(drilldown[0].categories);
$.each(drilldown, function(i, val) {
chart.addSeries({
name: val.name,
data: val.data
}, false);
});
}
chart.redraw();
}
function resetChart() {
//chart.toolbar.remove('RESET');
$.each(chart.series.reverse(), function(i) {
alert('removing :' + chart.series[i].name);
// IF I REMOVE THE BELOW LINE, ALL ALERTS DISPLAY CORRECTLY
chart.series[i].remove();
});
chart.xAxis[0].setCategories(categories);
chart.addSeries({
name: name,
data: data
});
chart.redraw();
}
chart = new Highcharts.Chart({
chart: {
spacingLeft: 5,
spacingRight: 5,
spacingBottom: 5,
renderTo: 'container',
type: 'column'
},
title: false,
xAxis: {
categories: categories
},
yAxis: {
title: false,
labels: {
formatter: function() {
str = '$' + this.value + '';
return str.replace('$-', '-$');
}
},
},
legend: {
enabled: false
},
plotOptions: {
column: {
cursor: 'pointer',
stacking: 'normal',
point: {
events: {
click: function() {
var drilldown = this.drilldown;
if (drilldown) { // drill down;
setChart(drilldown);
}
}
}
}
}
},
tooltip: {
formatter: function() {
var point = this.point,
s = '<b>$' + this.y +'</b>';
s = s.replace('$-', '-$');
if (point.drilldown) {
s += ': Click to view '+ point.category +'';
}
return s;
}
},
series: [{
name: name,
data: data
}]
});
chart.toolbar.add('RESET', 'Reset', 'chartReset', resetChart);
});
我創建了一個[的jsfiddle](http://jsfiddle.net/
(在setChart和resetChart)替換的每個的兩個實例bK3ar /),但實際上並沒有在圖表中看到任何系列。另外,如果你檢查'chart.series'的長度,它看起來只有1個。也許你可以創建一個jsFiddle來更清楚地說明問題? –
您可能必須先進行深入挖掘,然後單擊重置。從第一個系列重置它只會重新加載第一個系列。 對不起,我感到困惑 – FallingReign