Highcharts点击事件不适用于npm独立模块

时间:2016-05-10 20:37:02

标签: reactjs highcharts npm commonjs

我最近迁移了现有的ReactJS组件,该组件将Highcharts图表呈现为CommonJS格式。因此,现在通过ES6导入包含Highcharts库,应该通过<script>标记。

除了绑定到折线图点的click事件处理程序之外,大多数功能都没有问题。以下是图表选项哈希的相关片段:

this.chart = Highcharts.chart({
  chart: {
    renderTo: this.chartId,
    type: 'line'
  },
  plotOptions: {
    line: {
      allowPointSelect: true,
      point: {
        events: {
          click: function(e) {
            // some action
          }
        }
      }
    }
  },
  tooltip: {
    enabled: true, 
    pointFormat: '<span style="color:{point.color}">\u25CF</span>{point.meta}'
  },
  ...
});

在迁移到CommonJS格式之前,已确认这是有效的。迁移前和迁移后代码的唯一区别在于实例化:

$('#' + this.chartId).highcharts({...});

点击某个点时,会出现以下错误:

Uncaught TypeError: Cannot set property target of #<Event> which has only a getter

有趣的是,单击工具提示也会触发相同的错误(即使事件处理程序没有在图表配置中明确绑定到它)。也许是Highcharts内部事件处理程序?

我使用的是Highcharts v2.4.2(通过npm)。

以下是文件导入:

  import $ from 'jquery';
  import Highcharts from 'highcharts';

如前所述,大多数现有功能都运行良好(图表渲染,动画工作等) - 只是设置事件处理程序的问题。

0 个答案:

没有答案