我有这段代码:
<!DOCTYPE html>
<html lang="en">
<head>
<script defer src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script defer>
// This function is supposed to run when the DOM is ready.
$(function() {
});
</script>
</head>
如果我删除了defer
,它会有效,但是如果我将它们留在其中,或者仅仅是jquery,我会得到一个关于如何定义$的错误。也许我是一个白痴,但我读过defer
的所有内容都说它应该加载所有脚本,然后在解析文档时运行它们。
这是最近的Firefox。
答案 0 :(得分:5)
来自HTML5 spec:
async
和defer
属性是指示的布尔属性 如何执行脚本。必须defer
和async
属性 如果src
属性不存在,则不指定。
然后,只延迟jQuery,而不是内联脚本。因此,它会在定义之前尝试使用$
,因此它会抛出。