当我不断点击单选按钮时,它会在我不想要它的时候添加一个系列,
我的代码:
$(".test").change(function() {
var value = this.getAttribute("value");
if (value == 'a') {
chart.yAxis[0].setTitle({
text: "data"
});
if (chart.series.length >= 3) chart.series[1].remove();
chart.addSeries({
name: '2011',
type: 'column',
color: '#08F',
data: [1, 0, 4]
});
chart.series[1].remove();
chart.addSeries({
name: '2012',
type: 'column',
color: '#808000',
data: [8, 5, 3]
});
chart.addSeries({
name: '2013',
type: 'column',
color: '#FFA500',
data: [8, 1, 2]
});
}
单选按钮:
<input class="test" name="g" type="radio" value="a"> data</input>
<input class="test" name="g" type="radio" value="b"> data1</input>
<input class="test" name="g" type="radio" value="c"> data2</input>
问题是当我点击一个按钮时,它会不断添加系列
if (chart.series.length >= 3)
chart.series[1].remove();
这让我感到困惑,我认为是错误的...我想在点击a时显示3个数据。但它不断添加数据......
在jfiddle中,你可以看到它在我点击按钮时不断添加数据。当我只想要它显示我给每个按钮的数据.. http://jsfiddle.net/Qkzx6/9/
答案 0 :(得分:3)
if
并未涵盖所有机会:例如,如果您有B(包含一个系列的图表)并按A,则您的第一个if
将无法触发(length
不是2或更多)而你的其他remove
删除了第2个系列(series
从零开始);如果你来自C(有两个系列的图表)到A,你的第一个if
将再次移除第二个系列,然后再添加一个,然后再删除第二个等等。
只需删除每个remove
内的if
所有单独的来电,然后在删除所有系列的第一个while
之前放置一个if
块。像这样:
while (chart.series.length > 0) {
chart.series[0].remove(true);
}
你的jsFiddle更正了here。