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?
4 Réponses :
Il n'y a pas de différence. P>
La fonction appeler $ code> est identique à jQuery code>. Si vous affichez la source spécifiée, vous verrez var $ = jQuery = ... code> ou quelque chose à cet effet. P>
jQuery code> 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 (...) code> p>
jQuery code> sans paramètre par défaut à l'aide de document code>. Donc $ () code> et $ (document) code> est identique. Essayez-le en Firebug. P>
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 $ () code> en Firebug, vous verrez que le résultat est jQuery avec 1 élément - document code>.
@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.
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): aussi de la source, pour sauvegarder les conversations précédentes: p> 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: -) p> p>
Ah ne savez pas comment faire cela ou si je peux, mais j'ai ouvert une liaison à ceci :-d
Voici un autre - démarre comme ceci ...
})(jQuery);
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
});
BTW, je pense que
$ (fenêtre) .Ready (...) code> fonctionne aussi.