私は次のコードを持っています:
アセット/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にコメントすると、正常に機能します。両方のファイルが正しくロードされます。なぜこれが起こるのですか?
[編集1]
遊んでいたのですが、$('ul').children('ul').hide()
前に置いgraph = new Highcharts.Chart
ても期待通りに動くことに気づきました。ただし、同じファイルに配置したくないし、必ずしもグラフ変数の前に配置する必要もありません。
[編集2]
動作していないと思う理由が1つ見つかりました。私はjavascriptについてあまり知識がありません。キャッチされていないHighchartsエラー#13:
Highchartsエラー#13
レンダリングdivが見つかりません
このエラーは、chart.renderToオプションの設定が誤っているため、HighchartsがグラフをレンダリングするHTML要素を見つけることができない場合に発生します。
私のマークアップには、必要な場所にのみactivity_graph divが含まれています(私のアクティビティではビューを表示します)。他のどこにも含まれていません。そのため、このエラーが発生していると思います。でも他のどこにも使いたくない…何か考えはありますか?
[編集3]
これは、レールを使用して生成しているマークアップです。
= 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がなくなったため、エラーがポップアップします...