0

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

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

有什么想法吗?

<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>
4

1 回答 1

1

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

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

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

于 2013-09-09T01:16:53.560 回答