Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: duralai en 31 de Enero 2017, 21:36

Título: Funciones externas de Jquery ¿insertar varias en $(document).ready(function()?
Publicado por: duralai en 31 de Enero 2017, 21:36
Hola, tengo 2 dudas con Jquery.

La primera es si al añadir un archivo externo es necesario escribir la sentencia "Document.ready" o solo hay que hacerlo 1 vez?

y la segunda es si se puede lograr que una función se ejecute ANTES de cargar el documento,, por ejemplo tengo 1 función que cambia los Atributos SRC de varios elementos, por eso me gustaría que se ejecute antes de cargar.

Gracias de antemano, saludos!
Título: Re:Duda con funciones externas de Jquery
Publicado por: pedro,, en 01 de Febrero 2017, 22:47
Hola duralai.

Lo aconsejable sería usarlo dentro de "$(document).ready()", pero obligatorio no es, puedes probar las diferencias entre hacerlo de una forma u otra.

Si colocamos el script en el head y usando "$(document).ready()", este pequeño código:
Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>aprenderaprogramar.com</title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#prueba').css('color', 'blue');
});
</script>
</head>
<body>
<div id="prueba">
aprendeaprogramar.com
</div>
</body>
</html>
cambiará el color del texto, pero si no usáramos "$(document).ready()", el texto no cambiará de color.

Si colocamos el script dentro del body antes de cargar el div al que queremos cambiar el color del texto y sin usar "$(document).ready()":
Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>aprenderaprogramar.com</title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$('#prueba').css('color', 'blue');
</script>
<div id="prueba">
aprendeaprogramar.com
</div>
</body>
</html>
No cambiaría el color, en cambio si lo colamos después del div al que tiene que afectar si se cambiará el color del texto.

La conclusión es que no puedes cambiar las propiedades de algo que no se ha creado.

Saludos. ;D
Título: Re:Duda con funciones externas de Jquery
Publicado por: duralai en 02 de Febrero 2017, 03:06
Hola Pedro, yo me refería a las funciones de un archivo.js externo, cargado con src en el documento html.

En este archivo externo tengo varias funciones, y  todas tienen la parte de $(document).ready(function()).
Funcion A : $(document).ready(function())........
Funcion B : $(document).ready(function())........
Funcion C : $(document).ready(function())........

Es decir, cada función se ejecuta después de cargarse todo el documento, y lo que yo me preguntaba es si es necesario escribir en cada función la parte de Document.ready , o puede escribirse todo dentro de otra única función que sea la única que tenga la parte de Document.ready?

Lo de Document.ready lo entiendo perfectamente , es decir se le indica al navegador que ejecute X funcion/es solo después de haberse cargado por completo el documento, y así evitar que el/los scripts se encuentren con elementos aun no creados.




Título: Re:Duda con funciones externas de Jquery
Publicado por: pedro,, en 02 de Febrero 2017, 17:15
No te entendí bien entonces.

Bueno, a lo que preguntas responderte que si, que puedes poner todas las funciones dentro de un solo $(document).ready(function()..

Código: [Seleccionar]
$(document).ready(function(){
  Funcion A...
          Funcion B...
          Funcion C ...
          ...
})

Saludos. ;D