2013-04-09 2 views
3

В моем коде я инициализирующий диаграмму, как это ...Почему моя диаграмма высоких карт не восстанавливается/не восстанавливается должным образом?

<script type="text/javascript"> 
var chart = null, 
defaultOptions = { 
chart: etc etc 
}; 


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

$(function() { 
    $(document).ready(function() { 
     drawDefaultChart(); 
    }); 
}); 

</script> 

то в теле есть

<a href="#" onclick="drawDefaultChart()">Reset</a> 

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

function drawDefaultChart() { 
    chart.destroy(); //this makes the chart not work at all 
    chart = new Highcharts.Chart(defaultOptions); 
} 

Вы можете ясно видеть, что я «м Пазинг опции по умолчанию на графику, который предполагает, чтобы получить перерисован .... Я не понимаю, почему он использует старые настройки фильтра, я собираюсь спрыгнуть с моста, может кто-нибудь ПОЖАЛУЙСТА ПОМОЧЬ?

мой живой пример здесь http://goo.gl/sGu0M

//////// UPDATE

Я был в состоянии сделать это с большим количеством крови, пота и слез. Я закончил тем, что помещал данные в переменную php на другой странице (чтобы сохранить недвижимость), а затем вызывал ее с помощью php-переменных, а затем просто вызываю ее каждый раз, когда кто-то нажимает на ссылку. Я понял, что для того, чтобы перерисовать график, вы должны каждый раз перезагружать ВСЕ данные. PHP делает это проще с точки зрения количества данных на экране.

Это была ссылка, которая в конечном итоге помогла мне разобраться в этом. http://jsfiddle.net/dane/YUa3R/34/

+0

'$ (function() $ (document) .ready (function() {' - готовый обработчик в готовом обработчике? Hmmm –

+0

ГДЕ вы меняете параметры по умолчанию? Нет, где я могу видеть, -executes то же самое ... каждый раз, когда вы нажимаете эту ссылку, –

+0

не должен мой первоначальный набор «defaultOptions» установить параметры как моментальный снимок? – D3Chiq

ответ

1

Во-первых, я ничего не знаю о Highcharts, но это, казалось бы, что вам нужно: (с вашей фактической страницы)

function drawDefaultChart() { 
$("#container").empty(); 
    chart = new Highcharts.Chart(defaultOptions); 
} 

быть

function drawDefaultChart() { 
    $("#container").empty().highcharts(defaultOptions); 
} 

ИЛИ возможно:

function drawDefaultChart() { 
    $("#container").highcharts(defaultOptions); 
} 
+0

спасибо за ваш отзыв Марк, я пробовал все три, но, к сожалению, никто из них не имел никакого отношения к поведению диаграммы – D3Chiq

+1

Я клянусь богом, что я начну плакать, http://jsfiddle.net/gh/get/jquery /1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/chart-destroy/ Я следую примеру официального API и не могу даже заставить этот пример работать ... ничего не происходит уничтожить, «Уничтожить» устарели ???? вы можете увидеть код в реальном времени здесь http://goo.gl/sGu0M – D3Chiq

+1

Я смог разобраться в этом, ПОЗЖЕ, прошлой ночью, большое спасибо за вашу помощь. Марк! Я разместил редактирование того, как я это сделал в исходном сообщении. – D3Chiq

5

Всегда рекомендуется обратиться к документации API.

использовать следующий фрагмент кода, чтобы уничтожить диаграмму $('#container').highcharts().destroy();

Click here для рабочего раствора.

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