¿Puedes tener varios $(document).ready(function(){ ... }); secciones?
Si tengo muchas funciones al inicio, ¿todas tienen que estar en una sola?
$(document).ready(function() {
¿O puedo tener varias declaraciones de este tipo?
Puedes tener varios, pero no siempre es lo mejor que puedes hacer. Trate de no abusar de ellos, ya que afectará seriamente la legibilidad. Aparte de eso, es perfectamente legal. Vea lo siguiente:
http://www.learningjquery.com/2006/09/multiple-document-ready
Probar esto:
$(document).ready(function() {
alert('Hello Tom!');
});
$(document).ready(function() {
alert('Hello Jeff!');
});
$(document).ready(function() {
alert('Hello Dexter!');
});
Verás que es equivalente a esto, observa el orden de ejecución:
$(document).ready(function() {
alert('Hello Tom!');
alert('Hello Jeff!');
alert('Hello Dexter!');
});
También vale la pena señalar que una función definida dentro de un $(document).ready
bloque no se puede llamar desde otro $(document).ready
bloque. Acabo de ejecutar esta prueba:
$(document).ready(function() {
alert('hello1');
function saySomething() {
alert('something');
}
saySomething();
});
$(document).ready(function() {
alert('hello2');
saySomething();
});
la salida fue:
hello1
something
hello2
Puedes usar varios. Pero también puedes usar múltiples funciones dentro de un documento. Listo también:
$(document).ready(function() {
// Jquery
$('.hide').hide();
$('.test').each(function() {
$(this).fadeIn();
});
// Reqular JS
function test(word) {
alert(word);
}
test('hello!');
});
Sí, puedes tener fácilmente varios bloques. Solo tenga cuidado con las dependencias entre ellos, ya que el orden de evaluación podría no ser el esperado.
Sí, es posible tener múltiples llamadas $(document).ready(). Sin embargo, no creo que puedas saber de qué manera se ejecutarán. (fuente)
Sí, es posible, pero puedes usar mejor un div #mydiv y usar ambos.
$(document).ready(function(){});
//and
$("#mydiv").ready(function(){});