2016-11-01 16 views
1

私はを使用していますが、私は自分のチャーをテストしていましたが、コールすると2度の結果が得られます。 clearチャートのコンテンツまたは再初期化したり破壊したりする前に、もう一度それを呼び出す何が、私は、私はこれを見つけた解決策をここで探して、行うことを正確に把握していない:ハイチャートをクリア/再初期化

myChar.destroy(); 

しかし、この場合にはmyCharはどこ変数であります彼らはすべてのグラフのオプションを入れて、私の問題は私が関数でこれを行うことです、私は例えばここで私のコードと私が試したリセット機能を作成するために何をすることができます:

$(document).ready(function() { 
 
    $('#bt').click(function() { 
 
    chart(); 
 
    }); 
 
    $('#bt2').click(function() { 
 
    $('#MyDiv').html(""); 
 
    }); 
 
}); 
 

 
function chart() { 
 

 
    $('#Chart').highcharts({ 
 
    chart: { 
 
     type: 'bar' 
 
    }, 
 
    title: { 
 
     text: 'Inspeccion Dimensional' 
 
    }, 
 
    xAxis: { 
 
     categories: ['Pieza 1', 'Pieza 2', 'Pieza 3', 'Pieza 4', 'Pieza 5'] 
 
    }, 
 
    yAxis: { 
 
     min: 0, 
 
     title: { 
 
     text: 'Resultados' 
 
     } 
 
    }, 
 
    legend: { 
 
     reversed: true 
 
    }, 
 
    plotOptions: { 
 
     series: { 
 
     stacking: 'normal' 
 
     } 
 
    }, 
 

 

 
    series: [{ 
 
     name: 'Thickness', 
 
     data: [2, 2, 3, 2, 1] 
 
    }, { 
 
     name: 'Width', 
 
     data: [2, 2, 3, 2, 1] 
 
    }, { 
 
     name: 'Length', 
 
     data: [2, 2, 3, 2, 1] 
 
    }, { 
 
     name: 'Diameter', 
 
     data: [3, 4, 4, 2, 5] 
 
    }] 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script src="https://code.highcharts.com/highcharts.js"></script> 
 
<script src="https://code.highcharts.com/modules/exporting.js"></script> 
 

 

 
<button id="bt"> 
 
    Draw 
 
</button> 
 

 
<button id="bt2"> 
 
    Clear 
 
</button> 
 

 
<div id="MyDiv"> 
 
    <div id="Chart"> 
 
    </div> 
 
</div>

あなたは私のコードが表示された場合、私は$('#MyDiv').html("")を使用してこの問題を解決しようとしたが、私はこの方法でこれを行う場合、私は再び私のチャートを描画することはできませんよ。 Fiddle with working code

+0

を 'チャート(shouldCreate)のような'チャート() '関数'にしている場合、変数を送信本当の場合は、ハイチャートを作成し、それが偽であればそれを破棄しますか? – Qsprec

答えて

2

ハイチャートのインスタンスを破棄する必要があります。

$('#bt2').click(function() { 
    $('#Chart').highcharts().destroy(); 
}); 

Updated Fiddle

0

ボタン2イベントに次のコードを追加:

$('#Chart').highcharts().destroy(); 
関連する問題