我正在尝试使用迁移到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交换。任何帮助表示赞赏。
答案 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