Rails 5: JQuery inside $(document).ready 不会逐页触发,仅在重新加载时触发

Rails 5: JQuery inside $(document).ready does not fire from page to page, only on reload

编辑:我在这里发现了我的答案的问题:

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 只会在我重新加载当前所在的页面时触发。

任何帮助都会很棒。

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

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

我能够参考这个答案:

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

不断变化,

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

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

解决了我所有的问题。