2011-11-19 48 views
4

我不认为它可能在所有,但我只是想知道,因为我的朋友有这自己的网页上:您可以在加载jQuery之前内联编写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(){});块,并使其完成加载后工作?

+7

恩,是吗?它在一个实况页面上,你说... – GolezTrol

+0

是的,经过测试,它没有工作。我想我真的很想看看我能否在这里更快地得到答案或者通过测试......是的,我知道那是黑幕!但我能够更快地测试。我将来会避免这样的问题。 – trusktr

+0

这个问题通常足以让人们指出这个问题。 –

回答

12

没有它不工作像你的朋友,它预计,因为$undefined在这一点上,以便调用该函数$的说法function(){ }将导致一个JavaScript错误,指出$是不确定的。您必须在尝试使用它之前加载jQuery。

您的朋友可能会觉得$是特殊的,但$是一个和其他任何名字一样的名字。即:

function jQuery(){ 
// do stuff 
} 

function $(){ 
    // do stuff 
} 

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

Tangental note:在jQuery加载之前编写最终会使用jQuery的代码并不是绝对不可能的,但是您会将代码放入只会在jQuery加载后才会调用的代码中。我没有意识到这样做的任何jQuery约定,因为这种库不常见,但Facebook做到这一点:https://developers.facebook.com/docs/reference/javascript/我不认为你的朋友应该尝试这个,直到他更熟悉JavaScript的。

相关问题