$ (documento).

É a seguinte forma abreviada de $(document).ready ?

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

Eu vejo esse padrão muito usado, mas não consigo encontrar nenhuma referência a ele. Se for uma forma abreviada de $(document).ready() , existe alguma razão específica para que isso não funcione? Nos meus testes parece sempre triggersr antes do evento pronto.

    A abreviação de $(document).ready(handler) é $(handler) (onde handler é uma function). Veja aqui

    O código em sua pergunta não tem nada a ver com .ready() . Em vez disso, é uma expressão de function invocada imediatamente (IIFE) com o object jQuery como seu argumento. Sua finalidade é restringir o escopo de pelo menos a variável $ ao seu próprio bloco para que não cause conflitos. Você normalmente vê o padrão usado pelos plug-ins do jQuery para garantir que $ == jQuery .

    A taquigrafia é:

     $(function() { // Code here }); 

    A taquigrafia correta é esta:

     $(function() { // this behaves as if within document.ready }); 

    O código que você postou …

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

    … Cria uma function anônima e a executa imediatamente com jQuery sendo passada como arg $ . Tudo o que efetivamente faz é pegar o código dentro da function e executá-lo como normal, já que $ já é um alias para jQuery . : D

    Isso não é uma forma abreviada de $(document).ready() .

    O código que você publicou coloca o código interno e torna o jQuery disponível como $ sem poluir o namespace global. Isso pode ser usado quando você quiser usar o protótipo e o jQuery em uma página.

    Documentado aqui: http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/#use-an-immediately-invoked-function-expression

    Essas linhas específicas são o wrapper usual para plugins do jQuery:

    “… para garantir que o seu plug-in não colida com outras bibliotecas que possam usar o cifrão, é uma prática recomendada passar o jQuery a uma function de autoexecução (fechamento) que o mapeia para o cifrão para que ele possa ‘ t ser sobrescrito por outra biblioteca no escopo de sua execução. ”

     (function( $ ){ $.fn.myPlugin = function() { // Do your awesome plugin stuff here }; })( jQuery ); 

    De http://docs.jquery.com/Plugins/Authoring

    O atalho seguro para multi-estrutura para pronto é:

     jQuery(function($, undefined) { // $ is guaranteed to be short for jQuery in this scope // undefined is provided because it could have been overwritten elsewhere }); 

    Isso ocorre porque o jQuery não é o único framework que usa as variables $ e undefined

    O que sobre isso?

     (function($) { $(function() { // more code using $ as alias to jQuery // will be fired when document is ready }); })(jQuery);