Questão:
Se eu vincular dois arquivos JavaScript, ambos com $(document).ready
funções, o que acontece? Um substitui o outro? Ou os dois $(document).ready
são chamados?
Por exemplo,
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="http://.../jquery1.js"></script>
<script type="text/javascript" src="http://.../jquery2.js"></script>
jquery1.js:
$(document).ready(function(){
$("#page-title").html("Document-ready was called!");
});
jquery2.js:
$(document).ready(function(){
$("#page-subtitle").html("Document-ready was called!");
});
Tenho certeza de que é uma prática recomendada simplesmente combinar as duas chamadas em uma única, $(document).ready
mas isso não é possível na minha situação.
javascript
jquery
rlb.usa
fonte
fonte
Respostas:
Tudo será executado e com base na primeira chamada e na primeira execução!
Demo Como você pode ver, eles não se substituem
Também uma coisa que eu gostaria de mencionar
no lugar disso
você pode usar esse atalho
fonte
jQuery(document).ready(function(){ });
É importante observar que cada
jQuery()
chamada deve realmente retornar. Se uma exceção for lançada em uma, as chamadas subsequentes (não relacionadas) nunca serão executadas.Isso se aplica independentemente da sintaxe. Você pode usar
jQuery()
,jQuery(function() {})
,$(document).ready()
, o que quiser, o comportamento é o mesmo. Se um dos primeiros falhar, os blocos subsequentes nunca serão executados.Isso foi um problema para mim ao usar bibliotecas de terceiros. Uma biblioteca estava lançando uma exceção e as bibliotecas subsequentes nunca inicializaram nada.
fonte
$(document).ready
chamadas gerou um erro e, portanto, uma$(document).ready
função diferente nunca foi chamada. Isso estava me deixando louco.$ (documento) .ready (); é o mesmo que qualquer outra função. ele é acionado quando o documento está pronto - ou seja, carregado. a questão é sobre o que acontece quando vários $ (document) .ready () são acionados, e não quando você dispara a mesma função dentro de vários $ (document) .ready ()
ambos se comportarão exatamente da mesma maneira. a única diferença é que, embora o primeiro atinja os mesmos resultados. o último rodará uma fração de segundo mais rápido e requer menos digitação. :)
em conclusão, sempre que possível, use apenas 1 $ (document) .ready ();
// resposta antiga
Ambos serão chamados em ordem. A melhor prática seria combiná-los. mas não se preocupe se não for possível. a página não explodirá.
fonte
A execução é descendente. Primeiro a chegar, primeiro a ser servido.
Se a sequência de execução for importante, combine-as.
fonte
Ambos serão chamados, primeiro a chegar, primeiro a ser servido. Dê uma olhada aqui .
Resultado:
fonte
Não é necessário necro um thread, mas a versão mais recente da
jQuery
sintaxe sugerida é:Usando uma função anônima, isso pareceria
Veja este link:
https://api.jquery.com/ready/
fonte