JS延迟和jQuery就绪事件

JS延迟和jQuery就绪事件,jquery,Jquery,我在jquery脚本中添加了deferatribute以提高网页性能,但现在我发现错误$未定义。我需要在页面加载时执行JS代码,所以我使用jQuery.ready事件,但在使用延迟时它不起作用 <head> <script defer="defer" src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script> <scr

我在jquery脚本中添加了
defer
atribute以提高网页性能,但现在我发现错误
$未定义
。我需要在页面加载时执行JS代码,所以我使用jQuery.ready事件,但在使用延迟时它不起作用

<head>    
    <script defer="defer" src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script>


    <script type="text/javascript">
        $(document).ready(function () {
          //MyLoadCode
        });
    </script>

</head>    

$(文档).ready(函数(){
//MyLoadCode
});

如果您不想在很晚之前加载脚本,请将jquery脚本移动到html页面的底部。然后它将最后加载。

延迟属性(如果存在)指定在页面完成解析后执行脚本。但是在页面完成解析之前,您正在使用jquery变量
$
,此时jquery脚本没有加载,也没有初始化
$

不要使用defer属性,而是将脚本标记从页眉移动到页面底部,就在
标记之前

<html>
    <head></head>
    <body>

        ... 

        <script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script>


        <script type="text/javascript">
            $(document).ready(function () {
              //MyLoadCode
            });
        </script>
    </body>
</html> 

... 
$(文档).ready(函数(){
//MyLoadCode
});

在使用
$
之前,您需要确保jQuery已加载,因此不应延迟加载jQuery

如果要延迟加载jQuery,需要将使用jQuery的javascript添加到脚本onload success事件处理程序中。

您不能使用
$(document).ready(函数(){
和等待单元加载DOM,因为该语句本身就是一个jQuery符号,它被延迟且不可用。因此,
$
变量只能在jQuery立即加载时使用