10
votes

Quatre variations de JQuery Ready () - Quelle est la différence?

J'ai vu quatre manières différentes de dire à JQuery d'exécuter une fonction lorsque le document est prêt. Sont-ils tous équivalents? xxx


1 commentaires

BTW, je pense que $ (fenêtre) .Ready (...) fonctionne aussi.


4 Réponses :


13
votes

Il n'y a pas de différence.

$ est identique à jQuery . Si vous affichez la source spécifiée, vous verrez var $ = jQuery = ... ou quelque chose à cet effet.

La fonction jQuery vérifie le type de paramètre de ce type, s'il s'agit d'une fonction, il le traite de la même manière que $ (document) .Ready (...)

appeler jQuery sans paramètre par défaut à l'aide de document . Donc $ () et $ (document) est identique. Essayez-le en Firebug.


9 commentaires

Cela n'explique pas le second


Crap, je pensais que je les ai tous. attendez.


Est-il en défaut d'utiliser le document ou est-ce que JQuery étant renvoyé via une chaînage après le passage sans arguments?


Puisque vous l'avez signalé, y a-t-il une différence entre $ (fenêtre) .Readady () et $ (document) .Readady ()?


@David: Exécuter $ () en Firebug, vous verrez que le résultat est jQuery avec 1 élément - document .


@Patrick: À ma connaissance, il n'y a pas de différence efficace si elle est utilisée de manière cohérente. La seule chose que je pense que cela pourrait changer est l'ordre de l'événement prêt, en raison de la propagation. Je devrais tester cela pour être sûr.


Je vois! Oh et re $ (fenêtre) .Ready and $ (document) .Readady: je me demande si $ (fenêtre) peut attendre que les images soient chargées, etc., COS $ (document) .Ready déclenche dès que le DOM est prêt (avant images, etc.)


@David: Cela aurait certainement un sens pour moi si c'était le cas.


D'après la navigation de la source, il semble que tout se résume à "Ceci.call (document, jQuery)" [Line 2912 en 1.3.1] Signification La fonction anonyme est transmise à l'objet JQuery et exécuté dans le contexte du document. $ (fenêtre) .Readady (), $ (document) .Ready (), et même ('#bogus_selector »). Prêt () tous font la même chose.



5
votes

Re: les commentaires de Geroge IV concernant $ () == $ (document) c'est correct. De la source spécifiée (init est ce que l'on appelle appelé en interne): xxx

aussi de la source, pour sauvegarder les conversations précédentes: xxx

ceci devrait être un wiki communautaire. Je suis toujours intéressé par le fonctionnement intérieur de JQuery, maintenant, j'ai eu une excuse pour commencer à chercher: -)


1 commentaires

Ah ne savez pas comment faire cela ou si je peux, mais j'ai ouvert une liaison à ceci :-d



0
votes

Voici un autre - démarre comme ceci ...

})(jQuery);


0 commentaires

1
votes

Aussi, il doit être mentionné strong>, ce symbole que vous passez à la fonction sera utilisé dans la fonction. Par exemple:

$(function(jQuery) {
   // now I can use jQuery instead $
   jQuery("body").append("<div></div>"); // adds div to the end of body element
}); 


0 commentaires