【问题标题】:Rails 5: JQuery inside $(document).ready does not fire from page to page, only on reload [duplicate]Rails 5:$(document).ready 中的 JQuery 不会逐页触发,仅在重新加载时才会触发 [重复]
【发布时间】:2023-03-31 07:18:01
【问题描述】:

编辑:我在这里找到了我的答案的问题:

Rails 4: how to use $(document).ready() with turbo-links


正如标题所说,我的 Rails 5 应用程序中 application.js 文件的底部有一些 JQuery。我注意到如果我从一个页面到另一个页面,它不会触发。但是,如果我只是重新加载我所在的页面,它将起作用。

为了清楚起见,这是我的application.js 文件:

#app/assets/javascripts/application.js
... Rest of file.
//= require_tree .

$( document ).ready(function() {
  alert('test');
});

如果我只是在我的应用程序中逐页单击,我根本不会收到警报。同样,alert 只会在我重新加载当前所在的页面时触发。

对此的任何帮助都会很棒。

【问题讨论】:

  • 当您从一个页面转到另一个页面时,您是只是使用 AJAX 更改视图还是每次转到新页面时都会重新加载页面?
  • 没有 ajax,它只是标准的。随着我进行更多研究,我开始发现这可能是一个 turbolinks 问题。
  • 查找 turbolinks - 文档就绪事件将不再触发。有多种解决方法。

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


【解决方案1】:

当我开始做更多研究时,我发现这是一个 turbolinks 问题。

我可以参考这个答案:

Rails 4: how to use $(document).ready() with turbo-links

变化,

$( document ).ready(function() {...

$(document).on('turbolinks:load', function() {...

解决了我所有的问题。

【讨论】:

    【解决方案2】:

    我想你应该尝试将$(document).ready() 更改为$(window).load()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 2011-04-27
      相关资源
      最近更新 更多