Rails没有从link_to加载Chome中的js

我的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的方式是否存在一些已知限制? 如果我能提供有助于解决此问题的任何其他信息,请与我们联系。

我可以从你的application.js看到你正在使用turbolinks 。

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

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

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