2012-05-22 6 views
5

Создание мой Highchart с предустановленными опциями работает отлично:Сброс Highcharts в исходное состояние

chart = new Highcharts.Chart(options); 

Однако, когда я хочу, чтобы уничтожить и воссоздать схему он только разрушает. Даже если я удалю chart.destroy();, диаграмма все еще просто полностью закрыта, но не воссоздана.

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

Немного застрял здесь, как сбросить эту диаграмму.

Edit ::

Проверка контейнера диаграмма показывает диаграммы Pie создает что-то здесь, но, кажется, не будет извлекать данные должным образом. Нужно ли мне снова передавать мою переменную данных, даже если она задана в параметрах?

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> 
+0

Вы видели мой ответ? –

ответ

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

+0

Это не работает. Я попробовал это на своей основной демо-версии: http://jsfiddle.net/tapkr/ –

+0

@Grillz попробуй это http://jsfiddle.net/tapkr/1/ – undefined

+0

Эта ссылка работает для вас? Возможно, я размахиваю проблемой браузеров, так как скрипта не сбрасывается для меня –

4

При создании диаграммы в первый раз, когда вы пройти несколько вариантов thrue параметр, вы можете сохранить их в var, и когда вы хотите создать снова, вы используете те же параметры, что и следующий код.

var defaultOptions = { 
    // your options 
}; 

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

drawDefaultChart(); 

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

Вы можете видеть, что это работает here.

Смежные вопросы