为什么我收到一个未捕获的ReferenceError: $没有定义

Why do I receive an Uncaught ReferenceError: $ is not defined

本文关键字:ReferenceError 定义 一个 为什么      更新时间:2023-09-26

我有一个简单的显示页面,在文件的顶部有以下haml代码:

:javascript
  $(document).ready(function() {
    alert('Come on work.....');
  });

当我加载页面时,我在控制台Uncaught ReferenceError: $ is not defined

中收到此错误

这个问题似乎与这里的问题类似(Uncaught $ error)。

我的application.js是这样的

#= require jquery
#= require jquery_ujs
#= require jquery-ui
#= require underscore-min
#= require chosen.jquery.min
#= require app
#= require_tree .
#= require twitter/bootstrap
#= require d3.min
#= require highcharts/highstock
#= require highcharts/highcharts-more
#= require highcharts/solid-gauge
#= require tagcloud
#= require ace-element.min
#= require tipso.min
# Remove the following trigger when TurboLinks are re-enabled
  $(document).ready ->
    $(document).trigger 'page:change'

我可以使用一些帮助,如何我可以继续疑难解答所有其他javascript文件工作良好,所以我不确定问题是什么。

更新

我不确定我是否理解正确,但我已经尝试重新排序application.js中的文件:

#= require_tree .
#= require jquery
#= require jquery_ujs
#= require jquery-ui

我得到一个新的错误,说JQuery is not defined。我认为通过在application.js文件中加入这一点,jquery将无处不在。我错过了什么?我需要在我的show.html.haml页面中包含实际的文件吗?

正如@Pointy所说,jQuery文件需要包含在application.js之前

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="application.js"></script>

你必须在你的页面中包含jQuery引用

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>