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()');
}); 
Était-ce utile?

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/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top