你能在加载jQuery之前编写内联的jQuery代码吗?

时间:2011-11-19 17:07:34

标签: javascript jquery

我根本不认为它可能,但我只是想知道,因为我的朋友在他的页面上有这个:

<html>
    <head></head>
    <body>
        <script>
            $(function(){
              // ...
            });
        </script>
        <div><span>html stuff</span></div>
        <script src="jquery-1.7.js"></script>
    </body>
</html>

所以我只是想知道,这是有效的吗? jQuery是否会使用$(function(){});块并在完成加载后使其工作?

1 个答案:

答案 0 :(得分:12)

不,它不会像您的朋友那样工作,因为$此时将undefined,因此使用参数$调用函数function(){ }将导致一个javascript错误,指出$未定义。您必须先加载jQuery,然后再尝试使用它。

你的朋友可能会因为$很特别而感到困惑,但$是一个与其他人一样的名字。即:

function jQuery(){
 // do stuff
}

function $(){
  // do stuff
}

会做同样的事情。将这些定义放在外部文件中不会使它们在加载之前可以调用。

Tangental注意:在jQuery加载之前编写最终将使用jQuery的代码并不是绝对不可能的,但是你会把你的代码放在只在jQuery加载后调用的代码中。我不知道这样做的任何jQuery惯例,因为用这个库做这个并不常见,但Facebook这样做是这样的:https://developers.facebook.com/docs/reference/javascript/我不认为你的朋友应该这样做直到他更熟悉JavaScript。