这个问题来自

实际上,我能够找到一个线索,这就是我所发现的。我有一个js文件:

$(document).ready(function() {
  var myIdElement = $("#some_id");

  //............
  $.ajax({
    url: getFullUrl(myIdElement.val())
  })
  //..........


因此,当我通过链接(html链接)从另一个页面进入此页面时,myIdElementundefined。但是,当我重新加载页面时,它开始具有适当的值。我使用turbolinks。

如何使它在所有情况下都能正常工作?

最佳答案

$(document).ready并不总是在turbolink中触发。请使用page:load事件。在第一页上,它触发ready事件,但是在随后的页面上,document一直是ready,因此不会触发任何document ready事件。因此,它会触发page:load来帮助我们。

function ready () {
  // Your code goes here...
}

jQuery(document).ready(ready);
jQuery(document).on('page:load', ready);

07-24 09:39
查看更多