我正在使用this tutorial在我的Rails应用中加载特定于页面的JavaScript。我的文件结构如下所示:
Observable
我使用Map
预编译资产,文件app/assets/javascripts/
├── application.js
├── charts.coffee
├── dashboard
│ └── settings.js
├── dashboard-bundle.js
└── static_pages.coffee
只包含行config.assets.precompile += %w( *-bundle.js )
。然后,在我想要加载JavaScript的页面上,我将JavaScript包含在dashboard-bundle.js
中。
以下是我的//= require_tree ./dashboard/
文件的哪个部分的示例:
= javascript_include_tag 'dashboard-bundle'
当我第一次从另一个页面加载页面时,两个警报都会在适当的时间出现;第一次页面加载,第二次单击settings.js
按钮。
但是,当我重新加载页面而不首先转到另一个页面时,只有第一个警报正常工作。单击按钮时,不会显示警报。
我已经尝试安装jQuery Turbolinks,但这并没有解决问题。
答案 0 :(得分:1)
我认为在绑定#renderChart1
方法之后,.click()
已添加到DOM中,您应该转到document.ready
以确保该元素已加载到DOM中,如下所示:
$(document).ready(function(){
alert('Page and Javascript loaded!');
$('#renderChart1').click(function() {
alert('You want to edit options for chart1!');
});
});