Qual é a diferença entre esses dois.
$(document).ready(function(){ ... });
(function(){ ... })();
Essas duas funções são chamadas ao mesmo tempo? Eu sei, document.ready será acionado quando a página HTML inteira for renderizada pelo navegador, mas e a segunda função (função anônima chamada automaticamente). Ele espera que o navegador conclua a renderização da página ou é chamado sempre que é encontrado?
javascript
jquery
Ashit Vora
fonte
fonte
$(function() {});
é equivalente a$(document).ready(function() {});
Respostas:
$(document).ready(function(){ ... });
ou curto$(function(){...});
Essa função é chamada quando, o
DOM is ready
que significa, você pode começar a consultar elementos, por exemplo..ready()
usará maneiras diferentes em navegadores diferentes para garantir que o DOM esteja realmente pronto.(function(){ ... })();
Isso nada mais é do que uma função que se chama o mais rápido possível quando o navegador está interpretando o seu
ecma-/javascript
. Portanto, é muito improvável que você possa agir com sucessoDOM elements
aqui.fonte
(function(){ ... })();
nenhum código JS é executado o mais rápido possível? Se você dissesse,alert()
dentro ou fora do SIAF, o efeito não seria o mesmo?(function(){...})();
será executado assim que for encontrado no Javascript.$(document).ready()
será executado assim que o documento for carregado.$(function(){...});
é um atalho para$(document).ready()
e faz exatamente a mesma coisa.fonte
$(document).ready(function() { ... });
simplesmente vincula essa função aoready
evento do documento; portanto, como você disse, quando o documento é carregado, o evento é acionado.(function($) { ... })(jQuery);
é na verdade uma construção de Javascript, e tudo o que esse código faz é passar ojQuery
objetofunction($)
como parâmetro e executar a função; portanto, dentro dessa função,$
sempre se refere aojQuery
objeto. Isso pode ajudar a resolver conflitos de espaço para nome, etc.Portanto, o nº 1 é executado quando o documento é carregado, enquanto o nº 2 é executado imediatamente, com o
jQuery
objeto nomeado$
como atalho.fonte
O código a seguir será executado quando o DOM (modelo de objeto do documento) estiver pronto para a execução do código JavaScript.
A mão curta para o código acima é:
O código mostrado abaixo é uma função JavaScript anônima auto-invocável e será executado assim que o navegador a interpretar:
A função auto-invocadora do jQuery mostrada abaixo, transmite o objeto jQuery global como argumento para
function($)
. Isso permite$
que seja usado localmente dentro da função de auto-chamada sem precisar percorrer o escopo global de uma definição. O jQuery não é a única biblioteca que faz uso$
, portanto isso reduz potenciais conflitos de nomes.fonte
document.ready executado após o DOM ser "construído". As funções de auto-chamada são executadas instantaneamente - se inseridas
<head>
antes da construção do DOM.fonte
<head>
, e as regras não são diferentes após a construção do DOM inicial.