2016-08-30 66 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

相關問題