Rails Jquery不适用于其他页面

时间:2013-06-29 14:11:07

标签: javascript jquery ruby-on-rails ruby-on-rails-4

我认为jQuery不适用于您刚刚安装的其他页面。例如,当我键入localhost:3000 /时,在'/'目录中所有jQuery都可以工作。但是当我点击Rails创建的链接

<%= link_to "Example Link", news_path %>

页面正确加载,但jQuery不起作用。我的jQuery代码如下所述:

$(function() {
  console.log( "pageloaded" );
  ....
  $('.up').click(function(){
    .....
  });
});

3 个答案:

答案 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安装中默认情况下都是这样,所以如果您已经删除了这些设置,则需要将它们添加回来以使其正常工作。