2013-07-03 53 views
1

當我不斷地點擊單選按鈕,它不斷添加一系列的時,我不希望它這樣做,停止數據

我的代碼:

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

這是混淆了我,我認爲這是錯誤的。我希望當我點擊了一個3個數據顯示一次。然而,它不斷增加的數據...

在jfiddle,你可以看到,它不斷增加的數據時,我點擊的按鈕。當我只希望它顯示我已經給每個按鈕的數據.. http://jsfiddle.net/Qkzx6/9/

回答

3

if■不要覆蓋所有的機會:例如,如果你有B(圖有一個系列),並按下A,您的第一if不會着火(length不是2個或更多)和你的其他remove與刪除第二系列(series是零基礎);如果你從C(帶有兩個系列的圖表)到A,你的第一個if將再次刪除第二個系列,然後再添加一個,然後再次刪除第二個,等等。

只需將所有單個呼叫remove內的每個if和第一if,消除所有系列前作只是把while塊。像這樣:

while (chart.series.length > 0) { 
    chart.series[0].remove(true); 
} 

你的jsFiddle更正here

+0

謝謝你喲! – al123

+0

任何機會你沒有如何我可以添加數據到x軸,「1月」,「2月」,「3月」等等。 ','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] }放入您編輯的jfiddle – al123

+2

只需在構建圖表時將其添加到圖表選項即可。請注意,您提供了12個類別,因此您應該在每個系列的數據數組中提供12個項目。檢查更新的jsFiddle [這裏](http://jsfiddle.net/ssarabando/VnCgx/2/)。 – ssarabando