Rails没有从link_to加载Chrome中的js

时间:2013-12-18 15:44:06

标签: javascript ruby-on-rails google-chrome

我的rails应用程序在通过link_to帮助程序发送到页面后似乎没有加载某些javascript行为。这种情况发生在Chrome中,但不是IE(这让我很伤心)。我已经看到Chrome没有在bootstrap-switch的多个页面中加载行为,以及我在源代码树中的一些自定义函数。从Chrome重新加载页面后,这些工作,但不会从初始link_to开始。

这是我的application.js:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= require bootstrap
//= require bootstrap-switch
//= require jquery-placeholder
//= require jquery_nested_form

Chrome从link_to帮助程序接收或呈现javascript的方式是否存在一些已知限制?如果我能提供有助于解决此问题的任何其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

我可以从您application.js看到您正在使用turbolinks

使用turbolinks时,点击内部链接会忽略$(document).ready(function() { ..,因为页面实际上从未以传统方式重新加载。

你有几个选择,重写/重组你的JS,以便它与turbolinks很好地配合(通过没有特定于页面的JS包括,通过适当地确定你的事件等),或者如果你不这样做你可以禁用turbolinks想通过以下方式使用它:

  1. 将其从Gemfile
  2. 中删除
  3. //= require turbolinks
  4. 中删除application.js
  5. 删除"data-turbolinks-track" => true中对layouts/application.html.erb的2个引用。