Head.js奇怪的动作

时间:2013-09-09 01:10:08

标签: javascript head.js

我正在尝试使用head.js.得到一些奇怪的行动。下面的工作,但如果我在BODY的脚本中注释掉“alert('hi')”,那么head.js似乎不起作用。

所以我尝试评论所有head.js的东西,并为每个JS库使用标准标记。它按预期工作。但是当使用Head.js时,如果“alert('hi')”被注释掉,则会失败。显然,对于生产,我想删除此警报,但后来我收到此错误消息:“ReferenceError:$未定义”...... ???但是,如果我取消注释警报,那么一切正常并从数据库中提取数据

有什么想法?

<head>
<title></title>

 <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/headjs/0.99/head.min.js">           
</script>

<script type="text/javascript">
    head.js(
        /* root level */
        "http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js", 
        "http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js",
        "/assets/scripts/external/_references.js",
        "../../assets/scripts/external/jquery.unobtrusive-ajax.min.js",
        "../../assets/scripts/external/jquery.validate-vsdoc.js",
        "../../assets/scripts/external/jquery.validate.min.js",
        "../../assets/scripts/external/jquery.validate.unobtrusive.min.js",
        "../../assets/scripts/external/knockout-2.3.0.js",
        "../../assets/scripts/external/modernizr-2.6.2.js",

        "/assets/css/Index.css",           
        "assets/css/OrangeCounty.css"                       
    );
</script>
</head>

<body>    
<div id="list"></div>

<script>
    alert('hi');
    $.getJSON("http://localhost/webapi/api/ccc", function (result) {
        $.each(result, function (i, field) {
            $("div").append(field.Code + " " + field.Country1 + "<br/>");
        });
    });
</script>              
</body>

1 个答案:

答案 0 :(得分:1)

alert()拖延脚本执行足以让jQuery实际加载。 Head.js并行加载脚本并且不会阻塞,因此您必须将其与回调一起使用:

head.js(..., function() {
    // Your code
});

或者将该代码放入单独的脚本文件中,并在head.js调用中将其放在jQuery之后。