Pregunta:
Si enlace en dos archivos JavaScript, ambos con $(document).ready
funciones, ¿qué sucede? ¿Uno sobrescribe al otro? ¿O $(document).ready
se llama a ambos ?
Por ejemplo,
<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!");
});
Estoy seguro de que es una buena práctica combinar ambas llamadas en una sola, $(document).ready
pero no es posible en mi situación.
javascript
jquery
rlb.usa
fuente
fuente
Respuestas:
¡Todos se ejecutarán y se llamarán por primera vez!
Demo Como puedes ver, no se reemplazan entre sí
También una cosa que me gustaría mencionar
en lugar de esto
puedes usar este atajo
fuente
jQuery(document).ready(function(){ });
Es importante tener en cuenta que cada
jQuery()
llamada debe regresar. Si se lanza una excepción en una, las llamadas posteriores (no relacionadas) nunca se ejecutarán.Esto se aplica independientemente de la sintaxis. Se puede utilizar
jQuery()
,jQuery(function() {})
,$(document).ready()
, lo que quiera, el comportamiento es el mismo. Si falla uno de los primeros, los bloques posteriores nunca se ejecutarán.Esto fue un problema para mí al usar bibliotecas de terceros. Una biblioteca arrojaba una excepción, y las bibliotecas posteriores nunca inicializaron nada.
fuente
$(document).ready
llamadas arrojó un error y, por lo tanto$(document).ready
, nunca se llamó a una función diferente . Me estaba volviendo loco.$ (documento) .ready (); es lo mismo que cualquier otra función. se dispara una vez que el documento está listo, es decir, cargado. la pregunta es sobre qué sucede cuando se disparan múltiples $ (document) .ready () no cuando se activa la misma función dentro de múltiples $ (document) .ready ()
ambos se comportarán exactamente igual. La única diferencia es que, aunque la primera logrará los mismos resultados. este último correrá una fracción de segundo más rápido y requiere menos tipeo. :)
en conclusión, siempre que sea posible, solo use 1 $ (documento) .ready ();
// respuesta anterior
Ambos serán llamados en orden. La mejor práctica sería combinarlos. pero no te preocupes si no es posible. la página no explotará.
fuente
La ejecución es de arriba hacia abajo. Primero llegado, primero servido.
Si la secuencia de ejecución es importante, combínelos.
fuente
Ambos recibirán una llamada, por orden de llegada. Echa un vistazo aquí .
Salida:
fuente
No para necro un hilo, pero bajo la última versión de
jQuery
la sintaxis sugerida es:Usando una función anónima, esto se vería así
Ver este enlace:
https://api.jquery.com/ready/
fuente