5

プリセット オプションを使用してハイチャートを作成すると、問題なく動作します。

chart = new Highcharts.Chart(options);

ただし、チャートを破棄して再作成したい場合は、破棄するだけです。チャートを削除chart.destroy();しても、完全に空白のままですが、再作成されません。

$('#resetChart').on("click", function(e){
    e.preventDefault();
    chart.destroy();
    chart = new Highcharts.Chart(options);
});

このチャートをリセットする方法については、ここで少し立ち往生しています。

編集::

グラフ コンテナーを調べると、円グラフがここで何かを作成していることがわかりますが、データを適切に取得していないようです。オプションで設定されている場合でも、データ変数を再度渡す必要がありますか?

series: [{
                name: name,
                data: data,
                /* changes bar size */
                pointPadding: 0,
                borderWidth: 0,
                pointWidth: 15,
                shadow: false
        }]

次に、データがページで定義されます (CMS の場合):

<script type="text/javascript">
        data = [
            {
                y: {value},
                name: 'field1',
                id:'1'
            },
            {
                y: {value},
                name: 'field2',
                id:'2'
            },
            {
                y: {value},
                name: 'field3',
                id:'3'
            }
        ];
    </script>
4

2 に答える 2

6
$('#resetChart').on("click", function(e){
    e.preventDefault();
    while(chart.series.length > 0) chart.series[0].remove(true);
    chart = new Highcharts.Chart(options);
});

http://jsfiddle.net/tapkr/1

于 2012-05-22T13:51:51.077 に答える
4

パラメーターを介していくつかのオプションを渡すチャートを初めて作成するときは、それらを var に保存できます。再度作成する場合は、次のコードのように同じオプションを使用します。

var defaultOptions = {
    // your options
};

function drawDefaultChart() {
    chart = new Highcharts.Chart(defaultOptions);
}

drawDefaultChart();

$('#resetChart').on("click", function(e){
    e.preventDefault();
    chart.destroy();
    drawDefaultChart();
});

ここで動作することがわかります。

于 2012-05-22T14:12:35.023 に答える