2015-08-06 3 views
1

В этом проблема. Я хочу уничтожить существующую диаграмму и заменить ее новым экземпляром. Как и в doc, мне нужно вызвать метод destroy(), а затем создать новый. Но даже если я это сделаю, массив Highcharts по-прежнему сохраняет старую ссылку (как неопределенную) и создает новый график с новым индексом.Метод уничтожения не сбрасывает индекс диаграммы

Ниже приведен пример кода, also in fiddle. Просто нажмите кнопку, и вы увидите, что индекс диаграммы увеличивается.

createChart(); 
function createChart(){ 
    var options ={ 
     chart: { 
      renderTo: 'container', 
      ................. 
      ................. 
     } 
    } 
    var chart = new Highcharts.Chart(options); 
    alert(chart.index) 
} 

function newChart(){ 
    $("#container").highcharts().destroy(); 
    createChart(); 
} 
$("#button").click(function(){ 
    newChart(); 
} 
+2

Это поведение, поскольку в документации говорится, что он должен http://api.highcharts.com/highcharts#Highcharts.charts. Объект уничтожается. Есть ли причина, по которой вам нужен диаграммный индекс? –

+0

Спасибо, я обнаружил, что позже во время поиска. Фактически я создаю сложную диаграмму (с несколькими диаграммами в одном контейнере с синхронизированной подсказкой, перекрестием и т. Д.). Поэтому для этого мне нужно переопределить несколько действий мыши, где мне нужен индекс диаграммы в массиве Highcharts для доступа к конкретным диаграммам. Теперь, когда индекс диаграммы меняется, он становится непригодным. Во всяком случае, я просто использовал некоторые дополнительные условия, чтобы преодолеть эту проблему. – abdfahim

ответ

0

Я бы не предлагал создать высокую диаграмму одним нажатием кнопки. Вместо этого вы можете просто добавлять и удалять серию (против создания и уничтожения). Вы можете использовать операции hide()/unhide(), если вы хотите временно скрыть серьезное. Надеюсь это поможет.

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