2016-06-13 101 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

问题通过保持参考“旧”数据阵列引起的。在图表初始化期间,您将对参考数据的引用设置为已修改。所以当你销毁图表时,引用依然存在。在Highcharts对象中使用数据副本($ .extend([],data))。

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

例子:

+0

除了Rahul Sharma的评论,我用这个建议来解决我的问题。在生产中,我只需将(数据:[])更改为(data:data),然后在创建图表之前设置(var data = [])。现在效果很好。 – user1757006