jquery.turbolinks无法在Rails中使用$(document).ready

时间:2016-08-17 12:44:42

标签: javascript jquery ruby-on-rails turbolinks

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

以下是我的一些代码:

在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();
});

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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