Javascript`defer`不';好像不行

Javascript`defer`不';好像不行,javascript,jquery,html,firefox,Javascript,Jquery,Html,Firefox,我有以下代码: <!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. $

我有以下代码:

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

//这个函数应该在DOM就绪时运行。
$(函数(){
});
如果我删除了
延迟
,它会起作用,但是如果我把它们留在jquery中,或者仅仅是jquery中,我会得到一个关于$如何未定义的错误。也许我是个白痴,但是我读到的所有关于延迟的东西都说它应该加载所有脚本,然后在解析文档时运行它们

这是最近的Firefox。

来自:

async
defer
属性是表示 脚本应该如何执行。
defer
async
属性必须 如果
src
属性不存在,则不能指定

然后,只延迟jQuery,而不延迟内联脚本。因此,它试图在定义之前使用
$
,因此抛出

来自:

async
defer
属性是表示 脚本应该如何执行。
defer
async
属性必须 如果
src
属性不存在,则不能指定


然后,只延迟jQuery,而不延迟内联脚本。因此,它试图在定义之前使用
$
,因此抛出

defer
属性对内联脚本块不起作用。@RokoC.Buljan除非jQuery加载延迟,
$
将不起作用。即使没有提到这些问题,我也不会指望
defer
保证脚本执行顺序。@Quentin,我的理解是
[async]
忽略执行顺序,而
[defer]
保证执行顺序。对于内联脚本块,
defer
属性不起作用。@RokoC.Buljan但如果jQuery加载延迟,
$
将不起作用。即使没有提到问题,我不会指望
defer
保证脚本的执行顺序。@Quentin,我的理解是
[async]
忽略执行顺序,而
[defer]
保证执行顺序。