停止使用单选按钮高图添加数据

时间:2013-07-03 08:56:06

标签: javascript highcharts

当我不断点击单选按钮时,它会在我不想要它的时候添加一个系列,

我的代码:

  $(".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/

1 个答案:

答案 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