2015-11-20 37 views
-2

在將jQuery腳本加載到async之後,出現$(document).ready()上的「$ is undefined」錯誤。

以下是我的代碼的簡短版本。在我將async屬性添加到加載jQuery的我的<script>標記之前,它正在工作。

我這樣做是基於由谷歌網頁洞察以改善我的網頁的表現

推薦
<script src="/scripts/jquery.min.js" async></script> 
<script> 
    $(document).ready(function(){ 
     //Some variable initialization 
    }); 
</script> 
+6

當然,你得到的,b因爲當第二個腳本被執行時第一個腳本還沒有加載......這就是'async' _means_。你需要'推遲'而不是 - 這會確保和保證執行順序。 – CBroe

+1

使用谷歌託管的庫。 –

+0

但會延期影響頁面加載時間在谷歌網頁洞察檢查。 –

回答

3

你可以強迫你的初始化代碼要等到jQuery是加載通過從onload處理程序調用它放在你的<script>標籤:

<script src="//code.jquery.com/jquery-1.11.3.min.js" async onload="init()"></script> 
 

 
<script> 
 
    function init() { 
 
    $(document).ready(function() { 
 
     //Some variable initialization 
 

 
     console.log("loaded"); 
 
    }); 
 
    } 
 
</script>

+0

謝謝保羅。有效 –