¿Cuál es la diferencia entre estas funciones jQuery ready?

¿cuál es la diferencia entre

$(function(){ }); 

y

 $(document).ready(function() { }); 

Nada en lo absoluto.

Esta función se comporta como $ (document) .ready (), en el sentido de que debe usarse para ajustar otros $ ()

Puedes ver esto en el código fuente :

 rootjQuery = jQuery(document); ... } else if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } 
 } else if (jQuery.isFunction(selector)) { return rootjQuery.ready(selector); } 

De la fuente

Llamar a $(document).ready(selector) guarda algunas declaraciones if.

Aunque jQuery hace un caché de $(document) internamente que puede hacer que $(f) más rápido.

Benchmarked

Ambos son equivalentes, el primero es una forma abreviada.

$ (función () {}) es un atajo para el dom listo

Una función pasada como argumento para el constructor jQuery está vinculada al evento listo para documentos.

Los dos son exactamente equivalentes: use la forma que desee.

Dicho esto, personalmente siempre utilizo la forma expandida $(document).ready(function(){}); por la simple razón de que es completamente obvio lo que está haciendo el código. La idea aproximada es la de “código de auto-documentación”. Cualquier persona que acceda al código más tarde verá inmediatamente que el código se ejecutará en el evento ready del document . Con la forma abreviada, debes confiar en el lector de tu código para entender el significado.

Te sugiero que leas esto . Como puedes ver

Las tres syntax siguientes son equivalentes:

$(document).ready(handler)

$().ready(handler) (this is not recommended)

$(handler)

Entonces depende de ti y de lo que prefieras.

Son efectivamente lo mismo. Ninguna diferencia.


Esta es la forma nativa.

 $(document).ready(function() { // code }); 

Y esta es una forma abreviada de lo anterior.

 $(function() { // code }); 

código fuente jQuery

Nos hemos encontrado con situaciones en las que IE9 no ejecuta funciones dentro de $ (function () {}); de la misma manera u horario que $ (document) .ready (function () {});

El problema surgió específicamente para nosotros al leer información de una cadena de consulta y procesar y mostrar esa información en la pantalla, o usarla para procesar un formulario. IE9 procesaría la información una vez que se almacenó en caché con $ (función (), y un usuario actualizó la página. Pero en la primera ejecución, nada funcionó bien. Sin embargo, una vez que cambiamos de $ (función () {}) a $ ( document). ready (), el problema se solucionó. No cambiamos NADA más.

Espero con impaciencia el día en que no tenga que probar IE9 y menos.

Yo uso $(function() {}); porque es más corto. Hasta donde yo sé, no hay diferencia entre las dos formas de hacerlo.