2016-06-13 3 views
0

У меня возникла проблема, когда я получаю ошибку в заголовке этого вопроса, когда создаю диаграмму, подобную той, что была в этой скрипте http://jsfiddle.net/w43m47hL/.Невозможно прочитать информацию об «свойствах» неопределенного

Я получаю эту проблему при выборе точки.

this.select(); 

Проблема возникает при выполнении этих шагов.

  1. создать диаграмму
  2. нажмите на точку, чтобы выбрать его
  3. уничтожить диаграмму
  4. создать диаграмму снова

Размер набора данных, кажется, что-то делать с этой проблемой. Если вы измените 1500 на 15, вы увидите, что у вас больше нет этой проблемы. Однако выбранная точка данных по-прежнему выбирается после того, как диаграмма будет уничтожена и создана снова. Я бы подумал, что этот пункт не будет выбран, так как график был разрушен. Как память данных запоминает, что она выбрана?

+0

Вы не разрушая оригинальную схему – charlietfl

+0

я разрушив диаграмму, как описано в документированной скрипку здесь. http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/chart-destroy/. Можете ли вы рассказать мне, как я делаю это неправильно? – user1757006

+1

Это не что-то с высокими диаграммами, а с тем, как вы создаете данные. Я обновил [скрипку] (http://jsfiddle.net/w43m47hL/2/), ошибка больше не возникает. –

ответ

1

Проблема вызвана ссылкой на «старый» массив данных. Во время инициализации диаграммы вы устанавливаете ссылку на массив данных, который изменяется. Поэтому, когда вы уничтожаете диаграмму, ссылка все еще существует. Используйте копию данных ($ .extend ([], data)) в объектах Highcharts.

series: [{ 
    data: $.extend([], data) 
    }], 

Пример:

+0

Я использовал это предложение в дополнение к комментарию Рахула Шармы, чтобы исправить мою проблему. В производстве мне просто нужно было изменить (данные: []) на (данные: данные), а затем установить (var data = []) перед созданием диаграммы. Прекрасно работает. – user1757006

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