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