2012-02-22 17 views
28

Duplicar posibles:
What is the difference between these jQuery ready functions?
jquery: Choosing a document.ready method

¿Cuál es la diferencia entre hacer esto

$(function() { 
    $("a").click(function(event){ 
     alert("Thanks for visiting!"); 
    }); 
}); 

y esto

$(document).ready(function(){ 
    $("a").click(function(event){ 
     alert("Thanks for visiting!"); 
    }); 
}); 
+0

El primero es menos palabras y, cuando uno se acostumbra al idioma, más legible. De lo contrario, tienen el mismo efecto. – tvanfosson

Respuesta

39

Son lo mismo. Consulte el jQuery .ready() docs. He aquí una cita de los documentos:

Los tres de las siguientes sintaxis son equivalentes:.

$ (document) ready (manejador)

$() listo (manejador) (esto no es recomendable)

$ (handler)

+12

lol. Nunca deja de sorprenderme. Votado abajo para una respuesta correcta y una cita de los documentos :) –

9

no hay diferencia en la funcionalidad entre usted r ejemplos: ambos se unen a DOM listo.

Como referencia, hay dos puntos en los que puede enlazar su código jQuery.

La primera se ejecutará cuando el DOM está listo (ambos son equivalentes):

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

El segundo se ejecutará cuando la página ha terminado de cargar todas las imágenes, hojas de estilo, etc.

$(window).on("load", function() { 
    // code 
}); 

El segundo es útil cuando necesita obtener width() o height() de una imagen. Estas propiedades solo están disponibles una vez que la imagen se haya descargado por completo al sistema del cliente.

También tenga en cuenta que $(window).load(fn); ahora está en desuso y ya no se debe utilizar.

+0

Por supuesto, además de la vinculación, es importante recordar que el código de inicialización a veces no necesita estar vinculado a ningún evento. Algunos pueden ejecutarse tan pronto como se los lea, por este [artículo] (http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/) por [Dave Ward] (http: // encosia.com/about-dave-ward/). – MarkDBlackwell

7

Los tres de las siguientes sintaxis son equivalentes:

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

http://api.jquery.com/ready/

+4

SI son equivalentes, ¿por qué no se recomienda uno? – JorgeeFG

Cuestiones relacionadas