Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Funciones jquery despues de cargar datos con ajax

Estas en el tema de Funciones jquery despues de cargar datos con ajax en el foro de Jquery en Foros del Web. Tengo un problema recurrente que aver si me conseguís ayudar un poquito. Tengo por ejemplo la página A en ella un document.ready para que cargue ...
  #1 (permalink)  
Antiguo 25/02/2013, 03:30
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Funciones jquery despues de cargar datos con ajax

Tengo un problema recurrente que aver si me conseguís ayudar un poquito.

Tengo por ejemplo la página A en ella un document.ready para que cargue las funciones de no se, por ejemplo cargar mediante ajax la pagina B en un div en la página A.

El problema es que el contenido de B que viene de ajax mediante A también tiene algunas funciones JQuery y no funcionan si pongo el código jquery en la página A, lo tengo que poner en la página B, entiendo que porque hasta que B no carga al no encontrar una referencia a esos elementos los da como inútiles.

En definitiva. Como puedo hacer que el código javascript de A me funcione en B cuando se cargue?

Me expliqué bien?

Es que sino cargo N veces los códigos javascript, una vez por cada div que venga de B por ajax.
  #2 (permalink)  
Antiguo 25/02/2013, 17:33
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Funciones jquery despues de cargar datos con ajax

Cada vez que cargas una página en ajax, tienes que volver a cargar todos las librerías, códigos, css, etc, independientemente que estén en la página principal.

Saludos.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #3 (permalink)  
Antiguo 26/02/2013, 02:34
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Funciones jquery despues de cargar datos con ajax

Y eso como se hace mdk?

He puesto las funciones en el success de ajax. Eso es correcto? parece funcionar.

Gracias!

Última edición por alyciashape; 26/02/2013 a las 03:50
  #4 (permalink)  
Antiguo 26/02/2013, 06:25
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Funciones jquery despues de cargar datos con ajax

Suponiendo que usas la librería de jquery, cada vez que cargas una página en ajax, la página en cuestión tiene llevar la librería de jquery igual que la página principal, así te aseguras al 100% el funcionamiento.

Yo tengo un archivo con todas las lineas que cargan las librerías (archivos), y cada vez que cargo una página en ajax, lo añado con include de php.

Tu por ejemplo como ya te dije, si usas jquery, tendrías que añadir otra vez la linea que tengas de jquery, así como el código javascript que uses, o los archivos con javascript que tengas, así como las hojas de estilo CSS. Un ejemplo sería..

Código javascript:
Ver original
  1. <script type="text/javascript" src="scripts/jquery.min.js"></script>
  2. <script language="JavaScript" type="text/javascript">
  3. $(document).ready(function() {
  4.  
  5. ... código ...
  6.  
  7. });
  8. </script>


Yo como te he dicho cargo un archivo con todas las librerías.

Código PHP:
include("librerias.php"); 
Y el archivo contiene:

Código HTML:
<link rel="stylesheet" type="text/css" href="scripts/style.css" />
<script type="text/javascript" src="scripts/jquery.min.js"></script>
<script type="text/javascript" src="scripts/script.js"></script>
<script type="text/javascript" src="scripts/hash.js"></script> 
Espero haberme explicado bien
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 26/02/2013 a las 07:08
  #5 (permalink)  
Antiguo 27/02/2013, 03:53
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Funciones jquery despues de cargar datos con ajax

Pues la verdad es que no me convencía tu solución y seguí buscando porque de esa forma cada vez que creas un div por ejemplo estas creando otra vez todo el javascript y me parece bastante chapucilla. Imaginemos que tienes 10 div que abren otros 10 y en cada uno de ellos vuelves a crear javascript. Es un caos y no se si podrá generar algún error.

Tras mucho buscar he encontrado el método on() de jquery que básicamente se queda "atento" a que existan elementos. Sino hay al iniciar la web pero luego los generas dinámicamente te los coge sin problemas

Saludos
  #6 (permalink)  
Antiguo 27/02/2013, 07:52
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Funciones jquery despues de cargar datos con ajax

Yo también creo objetos dinámicamente, solo que esa sección de código no la cargo cada vez, solo cargo librerías de funciones generales, la de jquery por ejemplo, porque como dices, se crearía cada vez los objetos dinámicamente y podría realizar acciones no deseadas. Estudiaré lo que has comentado a ver si a mi también me interesa.

Saludos.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #7 (permalink)  
Antiguo 27/02/2013, 10:55
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Funciones jquery despues de cargar datos con ajax

Perdón olvidé poner el código, aquí te dejo una muestra:
Código Javascript:
Ver original
  1. $(document).on('click', '.aEfectos', function(event) {                 
  2.      $(this).parents(".trEfectos").prev().click();                 
  3. });

Al iniciar la página no existe el .trEfectos ni .aEfectos sin embargo al cargarlo desde Ajax funciona igualmente.

Etiquetas: ajax, funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.