我使用this tutorial在我的Rails应用程序中加载页面特定的JavaScript。我的文件结构如下所示:只有document.ready代码在Rails页面重新加载时运行
app/assets/javascripts/
├── application.js
├── charts.coffee
├── dashboard
│ └── settings.js
├── dashboard-bundle.js
└── static_pages.coffee
我预编译我的资产config.assets.precompile += %w(*-bundle.js)
和文件dashboard-bundle.js
只是由线路//= require_tree ./dashboard/
。然后,在我想要加载JavaScript的页面上,我加入了包含= javascript_include_tag 'dashboard-bundle'
的JavaScript。
这里是长什么样我settings.js
文件的一部分,就像一个样本:
$(document).ready(function(){
alert('Page and Javascript loaded!');
});
$('#renderChart1').click(function() {
alert('You want to edit options for chart1!');
});
当我第一次从另一个页面加载页面,都提醒出现在适当的时间;第一次在页面加载,第二次当我点击#renderChart1
按钮。
但是,当我重新加载页面而不先转到其他页面时,只有第一个警报正常工作。点击按钮时,警报不会出现。
我已经试过安装jQuery Turbolinks但这并没有解决问题。