【发布时间】:2014-05-09 08:17:24
【问题描述】:
我无法让 jquery 为我的一生工作。我正在处理两个页面,都需要 javascript。
第一页是我的主页。它有简单的咖啡脚本来显示文档加载的警报
$(document).ready ->
alert('ready')
第二页有自己的coffeescript,我不打算在这里粘贴。
当我加载主页时,此 document.ready 不会触发。但是,如果我加载第二页,它的代码和这个警报就会被触发。
这让我相信 jquery 没有被加载。所以我继续测试了一些东西
- jquery 是包含的第一个 javascript 文件,主页的 javascript 文件是包含的倒数第二个(最后一个是 application.js)。
- 第二页的脚本文件包含在首页的脚本文件之前
- 删除 turbolink 并不能解决问题。
所以我决定看看我能不能做点什么。
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 加载事件。
编辑:
似乎 $(document).ready -> ... 在第二页的 javascript 中搞砸了这个。这是为什么呢?
【问题讨论】:
-
@Carl 选择的答案和该主题不能解决我的问题。
-
问题可能出在 turbolinks
-
我删除了turbolinks,问题仍然存在。此外,第二页启用了 turbolinks 并且文档就绪触发正常。
-
您是否尝试过此处找到的解决方案:stackoverflow.com/questions/18770517/…。当我遇到类似的问题时,这对我有用
标签: javascript jquery ruby-on-rails coffeescript