Desde el sitio de documentos de la API de jQuery paraready
Las tres siguientes sintaxis son equivalentes:
- $ (documento) .ready (controlador)
- $ (). ready (controlador) (esto no se recomienda)
- $ (manejador)
Después de hacer la tarea: leer y jugar con el código fuente , no tengo idea de por qué
$().ready(handler)
no es recomendado. La primera y la tercera forma son exactamente iguales, la tercera opción llama a la función lista en un objeto jQuery almacenado en caché con document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Pero la función lista no tiene interacción con el selector de los elementos de nodo seleccionados, el ready
código fuente:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Como puede ver, simplemente agrega la devolución de llamada a una cola interna ( readyList
) y no cambia ni usa los elementos del conjunto. Esto le permite llamar a la ready
función en cada objeto jQuery.
Me gusta:
- selector regular :
$('a').ready(handler)
DEMO - Selector de tonterías :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Selector indefinido :
$().ready(handler)
DEMO
Finalmente ... a mi pregunta: ¿Por qué $().ready(handler)
no se recomienda?