prêt () Quatre variations de jQuery - quelle est la différence?
-
18-09-2019 - |
Question
Je l'ai vu quatre différentes façons de dire jQuery pour exécuter une fonction lorsque le document est prêt. Sont-ils tous équivalents?
$(document).ready(function () {
alert('$(document).ready()');
});
$().ready(function () {
alert('$().ready()');
});
$(function () {
alert('$()');
});
jQuery(function ($) {
alert('jQuery()');
});
La solution
Il n'y a pas de différence.
$
est le même que jQuery
. Si vous affichez la source unminified, vous verrez var $ = jQuery = ...
ou quelque chose à cet effet.
La fonction jQuery
vérifie le type de son paramètre, si elle est fonction, il traite la même chose que $(document).ready(...)
Appel jQuery
sans paramètre par défaut en utilisant document
. Alors $()
et $(document)
sont identiques. Essayez-le dans Firebug.
Autres conseils
re: Geroge IV commentaires de $ concernant () == $ (document) son correct. De la source unminified (init est ce que s'appelle en interne):
init: function( selector, context ) {
// Make sure that a selection was provided
selector = selector || document;
En outre de la source, pour sauvegarder les conversations précédentes:
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) )
return jQuery( document ).ready( selector );
cela devrait être la communauté wiki. Je me suis toujours intéressé par le fonctionnement interne de jquery, maintenant j'ai eu une excuse pour commencer à chercher: -)
En outre, il devrait être mentionné , ce symbole que vous passez à la fonction sera utilisée 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
});
si vous voulez utiliser $ - vous pouvez laisser la fonction de param cette situation vide
L'exemple réel, vous pouvez trouver ici http://jsfiddle.net/yura_syedin/BNgd4/
Voici un autre - commence comme ça ...
(function (jQuery) {
puis pour finir ...
})(jQuery);
Un exemple est ici: http://jsfiddle.net/C2qZw/23/