¿Es la siguiente taquigrafía para $(document).ready?
(function($){
//some code
})(jQuery);
Veo que este patrón se usa mucho, pero no puedo encontrar ninguna referencia al mismo. Si es una forma abreviada de $(document).ready(), ¿hay alguna razón particular por la que podría no funcionar? En mis pruebas parece que siempre se dispara antes del evento listo.
javascript
jquery
document-ready
shorthand
Mark Brown
fuente
fuente

var somevar;. Ej. ) No cambiará el contenido de las variables del mismo nombre fuera de la funciónRespuestas:
La abreviatura de
$(document).ready(handler)es$(handler)(dondehandleres una función). Ver aquí .El código en su pregunta no tiene nada que ver
.ready(). Más bien, es una expresión de función invocada inmediatamente (IIFE) con el objeto jQuery como argumento. Su propósito es restringir el alcance de al menos la$variable a su propio bloque para que no cause conflictos. Por lo general, ve el patrón utilizado por los complementos de jQuery para asegurarse de eso$ == jQuery.fuente
iifeo pase a la famosa publicación de blog de Cowboy Alman . Detalles ... sheesh.La taquigrafía es:
fuente
$. Es posible que desee agregar eso. Es útil parajQuery(function($, undefined) {});$(document).ready(function(){ });$gratis como primer argumento.La taquigrafía correcta es esta:
El código que publicaste ...
... crea una función anónima y la ejecuta inmediatamente
jQueryal pasarla como arg$. Todo lo que efectivamente hace es tomar el código dentro de la función y ejecutarlo como de costumbre, ya$que ya es un alias parajQuery. :REfuente
Esto no es una abreviatura para
$(document).ready().El código que publicó recuadra el código interno y hace que jQuery esté disponible
$sin contaminar el espacio de nombres global. Esto se puede usar cuando desea usar tanto prototype como jQuery en una página.Documentado aquí: http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/#use-an-immediately-invoked-function-expression
fuente
Estas líneas específicas son el contenedor habitual para los complementos de jQuery:
"... para asegurarse de que su complemento no colisione con otras bibliotecas que puedan usar el signo de dólar, es una buena práctica pasar jQuery a una función de ejecución automática (cierre) que lo asigna al signo de dólar para que pueda ' t será sobrescrito por otra biblioteca en el ámbito de su ejecución ".
Desde http://docs.jquery.com/Plugins/Authoring
fuente
La abreviatura segura multi-framework para ready es:
Esto se debe a que jQuery no es el único marco que utiliza las variables
$yundefinedfuente
(function($){ ... })(jQuery);ready, sino que se llamará de inmediatoIncluso una variante más corta es usar
donde
$significa jQuery y()=>{}se llama 'función de flecha' que heredathisdel cierre. (Para quethisprobablemente tengas enwindowlugar dedocument).fuente
¿Qué hay de esto?
fuente