Dal sito della documentazione dell'API jQuery perready
Tutte e tre le seguenti sintassi sono equivalenti:
- $ (documento) .ready (gestore)
- $ (). ready (gestore) (non consigliato)
- $ (gestore)
Dopo aver fatto i compiti - leggere e giocare con il codice sorgente , non ho idea del perché
$().ready(handler)
non è consigliato. Il primo e il terzo modo sono esattamente gli stessi, la terza opzione chiama la funzione ready su un oggetto jQuery memorizzato nella cache con document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Ma la funzione ready non ha alcuna interazione con il selettore degli elementi del nodo selezionato, Il ready
codice sorgente:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Come puoi vedere, aggiunge semplicemente il callback a una coda interna ( readyList
) e non cambia o utilizza gli elementi nel set. Ciò consente di chiamare la ready
funzione su ogni oggetto jQuery.
Piace:
- selettore regolare :
$('a').ready(handler)
DEMO - Selettore di sciocchezze :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Selettore non definito :
$().ready(handler)
DEMO
Infine ... alla mia domanda: perché $().ready(handler)
non è consigliato?