2014-12-02 67 views
1

在我的示例http://jsfiddle.net/uwdz8rm8/中,我只能使setData運行一次。我想在兩個數據集之間切換。有任何想法嗎?在HighCharts中多次使用setData

jQuery的我已經被證明在我的測試工作股利而不是在Highcharts

$('input:radio[name=penetrationoptions]').change(function() { 
    var chart = $('#KPI_Penetration_Chart').highcharts(); 
    if (this.value == 'amount') { 
     chart.series[0].setData(amountData); 
     $('#testing').css("background", "red"); 
    } else if (this.value == 'count') { 
     chart.series[0].setData(countData); 
     $('#testing').css("background", "green"); 
    } 
}); 

感謝您的幫助!

回答

0

試試這個:

$('#KPI_Penetration_Chart').highcharts({ 
     chart: { 
      type: 'pie' 
     }, 

     series: [{ 
      data: $.extend(true,[],amountData) 
     }] 
    }); 

我所改變的是複製amountData第一次。你會發現,如果你不這樣做,那麼這兩個變量最終都會指向相同的數據集。

看到它在這裏工作:http://jsfiddle.net/uwdz8rm8/3/

+0

哇感謝這麼多,你能告訴我怎麼樣,這使得它的工作,爲什麼會這兩個變量指向相同的數據?這真的會幫助我學習。另外,無論如何重構這個變得不那麼多餘? – Zack 2014-12-03 00:00:16

+0

我認爲這發生在Highcharts中 - 兩個變量最終都會引用同一個對象。 – Ryley 2014-12-03 00:10:55

+0

有趣,那麼.extend如何解決這個問題? – Zack 2014-12-03 00:36:31