A partir de la Site de documentation sur l'API jQuery pour ready
Les trois syntaxes suivantes sont équivalentes :
- $(document).ready(handler)
- $().ready(handler) (ceci n'est pas recommandé)
- $(handler)
Après avoir fait ses devoirs - lire et jouer avec le code source Je ne sais pas pourquoi
$().ready(handler)
n'est pas recommandée. La première et la troisième méthode sont exactement les mêmes, la troisième option appelle la fonction ready sur un objet jQuery mis en cache avec la fonction document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Mais la fonction ready n'a aucune interaction avec le sélecteur des éléments de nœuds sélectionnés. ready
code source :
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Comme vous pouvez le voir, il suffit d'ajouter le rappel à une file d'attente interne( readyList
) et ne modifie ni n'utilise les éléments de l'ensemble. Cela vous permet d'appeler la fonction ready
sur chaque objet jQuery.
Comme :
-
régulière sélecteur :
$('a').ready(handler)
DEMO -
Absurde sélecteur :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO -
Non défini sélecteur :
$().ready(handler)
DEMO
Enfin, j'en viens à ma question : Por qué $().ready(handler)
n'est pas recommandé ?