jquery.turbolinks 未处理 $(document)。准备好 Rails

jquery.turbolinks not working on $(document).ready in Rails

在意识到我的 rails 应用遇到众所周知的 $(document).ready) 无法使用 turbolinks 的问题后,我完全按照文档的建议安装了 jquery.turbolinks,但我仍然遇到同样的问题问题。每当在我的 $(document).ready) 函数中使用 turbolinks 导航 JavaScript 的 none 时。

这是我的一些代码:

在application.js中:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require_tree .
//= require turbolinks

JavaScript 无效的示例:

$(document).ready(function() {
  $('.notice:empty').hide();
  $('.alert:empty').hide();
  $(".notice").delay(2000).fadeOut();
  $(".alert").delay(2000).fadeOut();
});

在这种情况下,函数将在 turbolinks 之后加载!

function runner(){
  $('.notice:empty').hide();
  $('.alert:empty').hide();
  $(".notice").delay(2000).fadeOut();
  $(".alert").delay(2000).fadeOut();
}
$(runner);
$(document).on("turbolinks:load", runner);

原来是一个简单的错误,我实际上在 application.js 文件中有一个小脚本,但我没有意识到 //= require turbolinks 也需要在它下面