5

我相信 jQuery 不能在您刚刚安装的页面之外的其他页面上运行。例如,当我键入 localhost:3000/ 时,在 '/' 目录中所有 jQuery 都可以工作。但是当我单击 Rails 创建的链接时

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

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

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

3 回答 3

11

在 Rails 4turbolinks中,默认情况下是活动的。
这意味着,$(document).ready()当您加载新页面时,它不会执行。

turbolink触发一个新事件page:load。您可以使用它来运行您的 javascript 代码:

$(document).on('page:load', your_start_function);

turbolinks 上有出色的导轨

于 2013-06-29T14:30:54.287 回答
2

https://github.com/kossnocorp/jquery.turbolinks

此 gem 将 jQuery.ready 函数与 Turbolinks 监听事件页面绑定:加载,因此如果您将 Turbolinks 与 Rails 4 一起使用,则应该解决该解决方案

于 2013-06-29T14:46:53.823 回答
0

您需要gem 'jquery-rails'在 Gemfile 中(如果您使用捆绑器,则捆绑安装)

完成后,您需要在application.js文件中使用它:

//= require jquery

最后,您需要确保application.js文件作为应用程序模板的一部分加载。在application.html.erb你应该有以下内容:

<%= javascript_include_tag "application" %>

我相信这在 Rails 安装中默认就存在,所以如果你删除了这些设置中的任何一个,你需要重新添加它们以使其正常工作。

于 2013-06-29T14:17:56.310 回答