Ruby on rails 4.0 + javascript not loading

Ruby on rails 4.0 + javascript not loading

本文关键字:javascript not loading on rails Ruby      更新时间:2023-09-26

我有一个名为"front.js"的javascript文件,我像往常一样从"application.js"加载,代码如下:

//= require front

在"front.js"中,我有许多功能,我想在文档准备好后启动,如下所示:

$(document).ready(function() {
  $("#test").click(function(event){
    ...
  });
});

但问题是"front.js"只在我手动刷新页面时加载(ctrl+r/f5(,而不是在我从一个页面移动到另一个页面时加载,所以我的javascript代码无法按需要执行。也许这来自涡轮链接,我不知道如何处理这个问题。当我把脚本直接放在html文件中时,它是有效的,但这绝对不是正确的做法

有人能帮我吗?

有三种方法可以做到这一点。

a。您可以将jquery代码封装在一个函数中,然后在页面加载时调用该函数。如果你的功能准备好了,那么你可以做:

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

b。您可以使用jquery的实时事件或"on"事件:

$(document).on("click","#test",function(){
 // your code
});

c。您可以使用jquery涡轮链接gem,它将Rails涡轮链接事件绑定到document.ready事件,这样您就可以用通常的方式编写jquery。有关更多信息,请参阅此处

这是由于涡轮链接,而不是

var ready;
ready = function() {
  $("#test").click(function(event){
    ...
  });
};
$(document).ready(ready);
$(document).on('page:load', ready);

我在项目中使用foundation时遇到了同样的问题,您可以通过在application.js文件中不需要turoblink来禁用turoblink,它应该可以解决这个问题。