【问题标题】:Rails not loading js in Chome from link_toRails 没有从 link_to 在 Chrome 中加载 js
【发布时间】:2013-12-18 15:44:05
【问题描述】:

我的 rails 应用程序在通过 link_to 帮助程序发送到页面后似乎没有加载某些 javascript 行为。这发生在 Chrome 中,但不是 IE(这让我很伤心)。我已经看到 Chrome 没有在多个页面中加载引导开关的行为,以及我在源代码树中拥有的一些自定义功能。这些在我从 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 是否存在一些已知限制?如果我可以提供任何有助于解决此问题的其他信息,请告诉我。

【问题讨论】:

  • 嗨,迈克,你是对的;删除涡轮链接解决了这个问题。您能否将您的评论移到答案中以便我接受,或者是否有其他方法可以确认这是重复的?
  • 我认为它会引起版主的注意,但我会发布一个答案,以防不同的措辞吸引其他为此苦苦挣扎的人。

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


【解决方案1】:

我可以从您的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 个引用。

【讨论】:

  • 我不知道是否有必要,但在禁用 turbolinks 时,我还删除了 layouts/application.html.erb 中对“data-turbolinks-track”=> true 的 2 个引用。跨度>
  • 哎呀,也是这样:)。
  • 你可能也需要从 Gemfile 中删除它。
猜你喜欢
  • 1970-01-01
  • 2011-05-02
  • 2016-05-23
  • 2016-12-20
  • 1970-01-01
  • 2014-11-08
  • 2017-03-04
  • 1970-01-01
  • 2013-07-10
相关资源
最近更新 更多