Highstock: свойство 'firePointEvent' объекта #<Object> не является функцией

При нажатии на серию, я получаю следующую ошибку: Uncaught TypeError: Свойство 'firePointEvent' объекта # не является функцией.

В Highstock.js v1.3.1 (2013-04-15) по строке 9575:

// the series click event
fireEvent(hoverPoint.series, 'click', extend(e, {
    point: hoverPoint
}));

Пока там, hoverPoint существуют и имеют реальные ценности, но пока не имеют firePointEvent метод.

// the point click event
hoverPoint.firePointEvent('click', e);

На этой следующей строке hoverPoint все еще существуют и имеют firePointEvent метод, но все его атрибуты нулевые. Так что выдает ошибку:/

В чем здесь проблема?

1 ответ

Решение

Я мог бы воспроизвести эту проблему. Вы можете видеть это в этой скрипке.

  1. нажмите на фон графика (это удалит линию)
  2. затем нажмите на серию (линия вернулась, и это вызовет ошибку)

Я нашел обходной путь для этого, вы должны установить небольшой тайм-аут, чтобы событие click и процесс обновления не происходили в одном вызове.

Я думаю, update() изменяет объект hoverPoint, вызывая свойство firePointEvent null в конце процесса.

Вот обходной путь: ( в JSFiddle здесь)

plotOptions: {
        series: {
            events: {
                click: function(event) {
                    var that = this;
                    setTimeout( function(){
                        that.update({
                            lineWidth: 1,
                        });
                    }, 20);

                }
            }
        }
},
Другие вопросы по тегам