Pergunta

Eu vi quatro maneiras diferentes para contar jQuery para executar uma função quando o documento está pronto. São estes todos equivalentes?

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

$().ready(function () {
  alert('$().ready()');
}); 

$(function () {
  alert('$()');
});     

jQuery(function ($) {
  alert('jQuery()');
}); 
Foi útil?

Solução

Não há nenhuma diferença.

$ é o mesmo que jQuery. Se você ver a fonte unminified, você vai ver var $ = jQuery = ... ou algo nesse sentido.

A função jQuery verifica o tipo de parâmetro, de, se for uma função, ele trata o mesmo que $(document).ready(...)

Chamando jQuery sem um parâmetro padrão usando document. Então $() e $(document) são idênticos. Experimente no Firebug.

Outras dicas

re: comentários de Geroge IV relativas $ () == $ (documento) a sua correcta. A partir da fonte unminified (init é o que se chama internamente):

init: function( selector, context ) {
    // Make sure that a selection was provided
    selector = selector || document;

Também a partir da fonte, para fazer backup de conversas anteriores:

// HANDLE: $(function)
    // Shortcut for document ready
    } else if ( jQuery.isFunction( selector ) )
        return jQuery( document ).ready( selector );

este deve ser wiki comunidade. Eu fui interessado sempre no funcionamento interno do jQuery, agora eu tinha uma desculpa para começar a olhar: -)

Também deve ser mencionado , esse símbolo que você passar para a função será o uso dentro da função. Por exemplo:

$(function(jQuery) {
   // now I can use jQuery instead $
   jQuery("body").append("<div></div>"); // adds div to the end of body element
}); 

Se você quiser usar $ - você pode deixar param de função em este situação esvaziar

O exemplo real você pode encontrar aqui http://jsfiddle.net/yura_syedin/BNgd4/

Aqui está mais um - começa assim ...

(function (jQuery) {

, em seguida, ao fim ...

})(jQuery);

Um exemplo é aqui: http://jsfiddle.net/C2qZw/23/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top