我有以下代码:
资产/ JavaScript的/ activities.js.coffee
jQuery ->
graph = new Highcharts.Chart
chart:
renderTo: "activity_graph"
type: 'column'
exporting:
buttons:
printButton:
enabled: true
....
资产/ JavaScript的/ activity_groups.js.coffee
jQuery ->
$('ul').children('ul').hide()
如果我的活动文件中有新的Highcharts.Chart,则activity_group文件不起作用。如果我评论新的Highcharts.Chart它工作正常。两个文件都正确加载。为什么会这样?
[EDIT1]
我在玩耍时我也注意到如果我在$('ul').children('ul').hide()
之前放置graph = new Highcharts.Chart
它也会按预期工作。我不想将它放在同一个文件中,我不想将它放在图形变量前面。
[Edit2]
发现一个错误,为什么我认为它不起作用。我对javascript知之甚少。 未捕获的Highcharts错误#13:
Highcharts Error#13
渲染div未找到
如果chart.renderTo选项配置错误,则会发生此错误,因此Highcharts无法找到用于呈现图表的HTML元素。
我的标记只包含我需要的activity_graph div(在我的活动展示视图中)。它不包含在任何其他地方。这就是为什么我认为我收到这个错误。我不想在其他任何地方使用它......有什么想法吗?
[EDIT3]
这是我用rails生成的标记:
= content_tag :div, "", id: "activity_graph", data: {name: graph.name, minutes: graph.minutes, year: graph.year, month: graph.month, day: graph.day, data_hash: graph.data_hash}
我使用id activity_graph获取我的div并且图表显示没有问题。当我在这个页面上时,错误不会弹出......但是如果我在另一个页面上导航,则会弹出错误,因为我没有这个div和id ...
答案 0 :(得分:1)
我最后提出了条件。只有div元素存在,我才应该渲染。当我这样做时,错误就消失了。