我认为jQuery不适用于您刚刚安装的其他页面。例如,当我键入localhost:3000 /时,在'/'目录中所有jQuery都可以工作。但是当我点击Rails创建的链接
时<%= link_to "Example Link", news_path %>
页面正确加载,但jQuery不起作用。我的jQuery代码如下所述:
$(function() {
console.log( "pageloaded" );
....
$('.up').click(function(){
.....
});
});
答案 0 :(得分:11)
在Rails 4中turbolinks
默认处于活动状态
这意味着,当您加载新页面时,$(document).ready()
不会被执行。
turbolink
会触发一个新事件page:load
。您可以使用它来运行您的JavaScript代码:
$(document).on('page:load', your_start_function);
有一个优秀的rails cast on turbolinks
答案 1 :(得分:2)
https://github.com/kossnocorp/jquery.turbolinks
这个gem将jQuery.ready函数绑定到Turbolinks监听事件页面:load,因此如果你使用Turbolinks和Rails 4,解决方案应该会被解决
答案 2 :(得分:0)
您的Gemfile中需要gem 'jquery-rails'
(如果您使用的是捆绑包,则需要捆绑安装)
完成后,您需要在application.js
文件中提出要求:
//= require jquery
最后,您需要确保将application.js
文件作为应用程序模板的一部分加载。在application.html.erb
中,您应该拥有以下内容:
<%= javascript_include_tag "application" %>
我相信在Rails安装中默认情况下都是这样,所以如果您已经删除了这些设置,则需要将它们添加回来以使其正常工作。