2009-02-27 11 views
7

donc je sais ce que cela fait:

$(document).ready(function(){ 
    // Your code here... 
}); 

Maintenant, j'ai vu des gens faire ce récemment:

<script type="text/javascript">  
$(function(){ 
    // Your code here... 
}); 
</script> 

-ce que ces deux façons de faire la même chose?

Je vois une fonction anonyme étant déclarée dans un sélecteur jquery, mais jamais réellement invoqué, mais par la façon dont la page fonctionne, il semble que cela peut juste courir sur pagelo un d.

+0

Ces derniers temps? Cela a été disponible pour les 5 dernières années .... – blockhead

+0

C'est une des choses que je n'aime pas à propos de jquery ... en quête de brièveté, elle sacrifie sérieusement la (re) découvrabilité. IIRC, '$ (...)' peut faire au moins trois choses complètement différentes, selon le type de l'argument, et comment cherchez-vous une telle chose? Vous pouvez * si vous êtes familier avec les docs * - et c'est précisément le point. Le langage est conçu pour ceux qui restent familiers avec ses détails. '' – LarsH

+0

P.S. Dans ce cas, si vous vous souvenez que '$' est un alias pour 'jQuery', vous pouvez le rechercher ici: http://api.jquery.com/jQuery/ – LarsH

Répondre

7

oui, ils font la même chose. la fonction $() enveloppe $(document).ready() lorsque le paramètre de l'appel est un objet à fonction unique.

(sous la direction de refléter une question en commentaire)

+0

Donc, chaque fois que vous utilisez un sélecteur jquery, un petit document silencieux vérification prête se passe en arrière-plan? – thirsty93

+3

Non, jQuery vérifie le type de l'objet qui lui est passé et s'il s'agit d'une fonction, il est lié à l'événement ready du document; Si une chaîne est passée, elle fera autre chose (comme les éléments DOM sélectionnés). –

5

Oui, ils font exactement la même chose.

$(function(){ 
    // Your code here... 
}); 

est un raccourci pour

$(document).ready(function(){ 
    // Your code here... 
}); 
Questions connexes