我不能让jquery为我的生活工作。我有两页我正在处理,都需要javascript。
第一页是我的主页。它有简单的coffeescript来显示文档加载的警报
$(document).ready ->
alert('ready')
第二页有自己的coffeescript我不会粘贴在这里。
当我加载主页时,这个文件已经开始了。但是,如果我加载第二页,它的代码和此警报就会被触发。
这让我相信,jquery并没有被加载。所以我继续前进并测试了一些事情
所以我决定看看能不能开展任何工作。
alert 'test'
$(document).ready ->
alert('ready')
将开启测试'在主页上提醒。
此外,如果我在主页的底部包含脚本标记,并且我放入一些jquery以防止表单提交,它可以正常工作。以下是代码:
<script type="application/javascript">
$("#formtest").submit(function(e){
e.preventDefault();
alert('No submit');
});
</script>
然而,
<script type="application/javascript">
$(document).ready(function(){
alert('hello');
});
</script>
仍然无法运作。这告诉我DOM加载的事件没有为主页触发。
修改
看起来是$(文件).ready - &gt; ...在第二页的javascript中搞砸了这个。那是为什么?
答案 0 :(得分:1)
正如我在评论中提到的,对我有用的解决方案是让jquery事件以这种方式触发:
$(document).on('page:load', yourFunctionHere)
另一个解决方案是安装以下gem:
gem 'jquery-turbolinks'
使用该gem将允许您使用DOM加载事件来触发所有必需的jquery函数。