新的Highcharts.Chart制造麻烦。为什么?

时间:2012-10-09 20:02:15

标签: javascript jquery ruby-on-rails coffeescript highcharts

我有以下代码:

资产/ 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 ...

1 个答案:

答案 0 :(得分:1)

我最后提出了条件。只有div元素存在,我才应该渲染。当我这样做时,错误就消失了。