Quatro variações de jQuery ready () - qual é a diferença?
-
18-09-2019 - |
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()');
});
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/