我正在尝试使用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>
答案 0 :(得分:1)
alert()
拖延脚本执行足以让jQuery实际加载。 Head.js并行加载脚本并且不会阻塞,因此您必须将其与回调一起使用:
head.js(..., function() {
// Your code
});
或者将该代码放入单独的脚本文件中,并在head.js
调用中将其放在jQuery之后。