2015-04-03 40 views
0

所以,我知道這個問題以前已經問過,但所有我見過的問題,jquery已被加載到任何其他JS文件之後。在我的情況下是不同的。

我加載jQuery的1.11.2.min.js從我的JavaScript文件,然後加載頁面的單個文件,出於某種原因,我得到的錯誤:

Uncaught ReferenceError: $ is not defined 

我的腳本被調用如下:

<script async type="text/javascript" src="resources/javascript/jquery-1.11.2.min.js"></script> 
<script async type="text/javascript" src="resources/javascript/'.$fileName.'.js"></script> 

由於某種原因,錯誤正在出現。我能做些什麼來解決我的問題?

+1

你*當然* jQuery已被加載?您是否檢查了在嘗試加載文件時得到的回覆?錯誤來源於你的JS文件中哪行? – Terry 2015-04-03 20:43:06

+4

不要用'async'加載jQuery? – j08691 2015-04-03 20:43:10

+7

異步加載腳本意味着您的jQuery可能會最後加載。 – Frayt 2015-04-03 20:43:19

回答

1

這些屬性很可能是導致問題的原因。當您將腳本標記爲async時,裝載順序不能得到保證,並且假設jQuery相當大,則可能在之後加載腳本嘗試運行。

This article討論腳本加載的來龍去脈,但它提供了最簡單的解決方法是使用普通的非異步script元素,並把他們的閉幕前右</body>標籤:

.... 
    <script src="resources/javascript/jquery-1.11.2.min.js"></script> 
    <script src="resources/javascript/'.$fileName.'.js"></script> 
</body> 
0

將腳本包裝在裝入處理程序中。它會確保jquery在執行之前被加載。

window.addEventListener("load", function(){...}); 
相關問題