Por que “$ (). Ready (handler)” não é recomendado?
Desite de documentos da API do jQuery paraready
Todas as três sintaxes a seguir são equivalentes:
$ (document) .ready (manipulador)$ (). ready (handler) (isso não é recomendado)$ (manipulador)Depois de fazer lição de casa - lendo e brincando com oCódigo fonte, Eu não tenho ideia do porquê
$().ready(handler)
não é recomendado. A primeira e a terceira formas são exatamente as mesmas, a terceira opção chama a função pronta em um objeto jQuery em cache comdocument
:
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 do nó selecionado.ready
Código fonte:
ready: function( fn ) {
// Attach the listeners
jQuery.bindReady();
// Add the callback
readyList.add( fn );
return this;
},
Como você pode ver, apenas adiciona o retorno de chamada a uma fila interna (readyList
) e não altera nem usa os elementos no conjunto. Isso permite que você ligue para oready
função em cada objeto jQuery.
Gostar:
regular Seletor:$('a').ready(handler)
DEMOAbsurdo Seletor:$('fdhjhjkdafdsjkjriohfjdnfj').ready(handler)
DEMOIndefinido Seletor:$().ready(handler)
DEMOFinalmente ... para minha pergunta:Por quê$().ready(handler)
não é recomendado?