Depuis le site de documentation de l'API jQuery pourready
Les trois syntaxes suivantes sont équivalentes:
- $ (document) .ready (gestionnaire)
- $ (). ready (handler) (ce n'est pas recommandé)
- $ (gestionnaire)
Après avoir fait mes devoirs - lire et jouer avec le code source , je ne sais pas pourquoi
$().ready(handler)
n'est pas recommandé. Les première et troisième méthodes sont exactement les mêmes, la troisième option appelle la fonction ready sur un objet jQuery mis en cache avec 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œud sélectionnés, Le 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 Justs ajouter le rappel à une file d' attente interne ( readyList
) et ne change pas ou utiliser les éléments dans l'ensemble. Cela vous permet d'appeler la ready
fonction sur chaque objet jQuery.
Comme:
- sélecteur régulier :
$('a').ready(handler)
DEMO - Sélecteur absurde :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Indéfini sélecteur:
$().ready(handler)
DEMO
Enfin ... à ma question: pourquoi $().ready(handler)
n'est pas recommandé?