Javascript xAxis全屏时间间隔抛出错误

Javascript xAxis全屏时间间隔抛出错误,javascript,highcharts,Javascript,Highcharts,问题 如果xAxis.tickInterval设置为任意值,则在激活全屏视图时会引发此错误: TypeError: t.toPrecision is not a function highcharts-complete.min.js:1:8079 详细信息 数据系列为连续年份,以文本形式书写(2011年、2012年、2013年等) 数据源是页面上的一个HTML表 如果将xAxis.tickInterval保留为默认值,则不会发生这种情况 如果使用包含日期的序列时xAxis.type=“da

问题

如果xAxis.tickInterval设置为任意值,则在激活全屏视图时会引发此错误:

TypeError: t.toPrecision is not a function

highcharts-complete.min.js:1:8079
详细信息

  • 数据系列为连续年份,以文本形式书写(2011年、2012年、2013年等)

  • 数据源是页面上的一个HTML表

  • 如果将xAxis.tickInterval保留为默认值,则不会发生这种情况

  • 如果使用包含日期的序列时xAxis.type=“dateTime”,则xAxis.tickInterval不会发生这种情况
  • 这在yAxis.tickInterval中根本不会发生

在尝试构建相关代码的简化版本以便将其发布到JSFIDLE的过程中,我设法解决了自己的问题,尽管它确实提出了一个问题

我使用Javascript从用作数据源的表上设置的数据属性中提取图表选项。除了xAxis.tickInterval之外,所有这些都工作得很好

结果是,当它需要一个整数时,它试图将该值解析为一个精度。解决方案是在调用table.dataset时使用parseInt

有趣的是,尽管yAxis.tickInterval都是由数据属性设置的,并且使用相同的代码以编程方式构建图表选项,但该错误在yAxis.tickInterval上并没有发生

解决了,但好奇为什么xAxis失败,yAxis成功

如果有人对此感到好奇,那么这行代码是180,下面是JSFIDLE链接:


发生此错误的原因以及需要使用parsInt的原因是,您的table.dataset.xAxisTickInterval是一个字符串,而不是数字,但tickInterval必须是一个数字,您可以在文档中找到:

为什么它是yAxis的工作?偶然地;)就像true或false一样,它也可以工作,因为JavaScript会将其作为0或1

见:

为什么只有在全屏模式下才会发生这种错误?因为tickInterval似乎在默认情况下被计算为1,而您稍后进行的此更新没有更改它(没有触发重画,但在选项中将值从1更改为“1”)。但全屏模式会触发图表重画,并且在您的更新间隔设置为“1”后,这是不正确的


演示:

大家好,欢迎,首先添加一个JSFIDLE示例如果您需要帮助,我们需要看患者
 rdOptions.xAxis['tickInterval'] = parseInt(table.dataset.xAxisTickInterval);
xAxis: {
    tickInterval: 1
  },

yAxis: {
    tickInterval: true
  },