Jquery不会触发文档.准备就绪

Jquery will not fire document.ready in rails

本文关键字:文档 准备就绪 Jquery      更新时间:2023-09-26

我无法让jquery为我的生活工作。我有两个页面,我正在工作,都需要javascript。

第一页是我的主页。它有一个简单的coffeescript,用于在文档加载

时显示警告。
$(document).ready ->
 alert('ready')

第二页有它自己的coffeescript,我不打算粘贴在这里。

当我加载这个文档的主页时。准备不开火。然而,如果我加载第二个页面,它的代码和这个警告被触发。

这让我相信jquery没有被加载。所以我继续测试了一些东西

  1. Jquery是第一个包含的javascript文件,主页的javascript文件是倒数第二个包含的(最后一个是application.js)。
  2. 第二页的脚本文件包含在首页的脚本文件
  3. 之前移除涡轮链接并不能修复它。

所以我决定看看我是否能让什么东西起作用。

alert 'test'
$(document).ready ->
 alert('ready')

将在主页上触发'test'警报。

此外,如果我在主页的底部包含脚本标签,并放入一些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)。准备->…在第二页的javascript搞砸了这个。为什么呢?

正如我在评论中提到的,一个对我有效的解决方案是让jquery事件也以这种方式触发:

$(document).on('page:load', yourFunctionHere)

另一个解决方案是安装以下gem:

gem 'jquery-turbolinks'