2015-11-20 23 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

谢谢保罗。有效 –