对jQuery的引用顺序是否重要?

时间:2012-09-11 16:51:18

标签: jquery

我对jQuery很新。我在项目的母版页中引用jQuery时遇到了问题(您可以在下面找到我的母版页的一部分)。我想在页面中使用datepicker,所以我在另一组引用(在我的项目中为任何其他jquery)添加了一组引用(jQuery ui和css),但是当我运行它时,它一直给我“ jQuery未定义“警报。

有趣的是,如果我将datepicker的refs组移到另一组之后(就像下面显示的顺序一样),它就能正常工作。我不知道它是否与呈现页面时的顺序有关。任何信息,将不胜感激。

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>
        <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    </title>
    <script type="text/javascript" src="../../Scripts/jquery-1.7.2.min.js"></script>
    <link href="../../Content/Site.css" rel="Stylesheet" type="text/css"/>
    <!--date picker-->
    <script type="text/javascript" src="../../Scripts/jquery-ui-1.8.22.custom.min.js"></script>
    <link href="../../Content/jquery-ui-1.8.22.custom.css" rel="Stylesheet" type="text/css"/>
    <!--date picker-->
</head>

2 个答案:

答案 0 :(得分:0)

是的,JavaScript被“自上而下”解析。

所有依赖项都需要在依赖引用之前引用。

答案 1 :(得分:0)

按照DOM中遇到script标记的顺序执行JavaScript(默认情况下) - 如果在加载其依赖项之前加载某个具有依赖项的库,则会出现错误(如您所发现的)< / p>

请参阅:http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#attr-script-async

  

使用这些属性可以选择三种可能的模式。如果存在async属性,则脚本一旦可用就会异步执行。如果async属性不存在但是存在defer属性,则在页面完成解析时执行脚本。 如果两个属性都不存在,则在用户代理继续解析页面之前立即获取并执行脚本。

强调我的