Do site de documentos da API jQuery paraready
Todas as três sintaxes a seguir são equivalentes:
- $ (documento) .ready (manipulador)
- $ (). ready (handler) (isso não é recomendado)
- $ (manipulador)
Depois de fazer o dever de casa - ler e brincar com o código-fonte , não tenho ideia do por que
$().ready(handler)
não é recomendado. A primeira e a terceira maneiras são exatamente as mesmas, a terceira opção chama a função pronta em um objeto jQuery em cache com document
:
rootjQuery = jQuery(document);
...
...
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
Mas a função pronta não tem interação com o seletor dos elementos de nó selecionados, o ready
código-fonte:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Como você pode ver, ele apenas adiciona o retorno de chamada a uma fila interna ( readyList
) e não altera ou usa os elementos do conjunto. Isso permite que você chame a ready
função em cada objeto jQuery.
Gostar:
- seletor regular :
$('a').ready(handler)
DEMO - Seletor sem sentido :
$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMO - Seletor indefinido :
$().ready(handler)
DEMO
Finalmente ... à minha pergunta: Por que $().ready(handler)
não é recomendado?