2016-08-30 33 views
0

我有了在文件的顶部这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文件工作正常,所以我不知道是什么问题。

UPDATE

我不知道我的理解正确,但我已经尝试过重新排序文件application.js这样:

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

而且我得到一个新的错误,指出JQuery is not defined。我认为通过在application.js文件中使用jquery将会到处存在。我在这里错过了什么。我是否需要在我的show.html.haml页面中包含实际文件?

+3

的jQuery包含必须发生*之前*第一次引用'$' – Pointy

+0

Pointy感谢您的快速回复。 '在第一次引用'$'之前是什么意思?这是我的演出文件中的'$'?我没有跟随。 –

+0

@DanRubio问题:1.你在哪里放置了“application.js”的引用2.最好给你提供jsfiddle或stacksnip代码的引用片段 –

回答

0

为@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>

+0

happymacarts感谢您的答案。你可以看看我的更新。我不明白我需要做什么。我是否需要在我的'application.js'文件中加载正确的顺序,或者你是否在我的'show.html.haml'或'application.js'页面中需要你的回答?我认为资产管道可以处理这个问题并将其加载到任何地方。 –

+0

我不熟悉HAML但是,jquery脚本需要包含在呈现的html之前applicaion.js – happymacarts

+0

它的工作,但那么这个宝石有什么意义呢? https://github.com/rails/jquery-rails。我想再换一次。 –

0

之前,你必须包括在你的页面的jQuery参考

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

@ Mohit Arora对我的重复答案(我想我有一个更快的触发手指),但是要感谢@Pointy,他在我实际回答之前发表了评论 – happymacarts

相关问题