Rails 4 Jquery加载但不起作用

时间:2014-02-07 17:07:36

标签: javascript jquery ruby-on-rails

我正在尝试使用迁移到Rails4的Rails2应用程序来处理一些简单的jquery。 js在Rails2中运行良好,但在Rails4中没有。

我理解Turbolinks会干扰Jquery文档的准备,所以我已经从资产中的清单文件和我的gemfile中的gem中删除了它。我重新运行了Bundle Install并重新启动了我的应用程序。

我已经确认Jquery加载了,我可以看到我的firebug窗口中的所有javascript加载。普通的javascript运行得很好;然而,任何以$开头的东西都是默默地失败。

示例:

<script>

$(document).ready(function(){
alert("I'm alive");
});

</script>

即使这样也行不通......但是一个简单的警报就可以了。我在这里挠头。

是的......这是正确的页面。我需要的是简单的....通常只是文件准备好的一个衬垫。

我已经广泛搜索了这个并查看了Stack交换。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

确保您已包含jQuery库;为了工作jQuery,你需要包含jQuery库。脚本也应该在jQuery库之后。

<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script>    
 $(document).ready(function(){
    alert("I'm alive");
 });    
</script>

答案 1 :(得分:0)

可能与prototype.js发生冲突?您还可以获取jquery-rails gem并执行

rails g jquery:install 

至少对我而言,我不想考虑是否记得在任何需要的地方都包含jquery。另外我相信jquery-rails会处理任何潜在的prototype.js冲突。

修改 我的问题 Turbolinks,所以万一其他人像我一样到达这个页面,你需要这样做

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

而不是

$( document ).ready(function()

https://stackoverflow.com/a/22838992/1094092

“Turbolinks可以更快地在您的Web应用程序中建立以下链接。它不会让浏览器在每个页面更改之间重新编译JavaScript和CSS,而是让当前页面实例保持活动状态,只替换头部中的正文和标题。想想CGI与持续进程。“ https://github.com/rails/turbolinks