Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Jquery sobre html cargado por ajax

Estas en el tema de Jquery sobre html cargado por ajax en el foro de Jquery en Foros del Web. Muy buenas. Tengo un problemilla que no sé resolver. Hay una parte de una página que cargo por ajax dinámicamente cuando la página se carga. ...
  #1 (permalink)  
Antiguo 22/12/2013, 15:01
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 meses
Puntos: 1
Jquery sobre html cargado por ajax

Muy buenas. Tengo un problemilla que no sé resolver. Hay una parte de una página que cargo por ajax dinámicamente cuando la página se carga. El problema es que jquery no puede actuar sobre esos elementos cargados dinámicamente.

Por ejemplo, si tengo:
Código HTML:
Ver original
  1. <div class="comentario">
  2. contenido del comentario
  3. </div>

Y

Código Javascript:
Ver original
  1. $(".comentario").hover(
  2. function() {
  3. $(this).css("background", "red");
  4. }, function() {
  5. $(this).css("background", "blue");
  6. }
  7. );

Si el div lo cargo por ajax la instrucción jquery no funciona, pero si lo coloco en la página tal cual, sí.

¿Hay alguna forma de hacer que funcione?

Saludos
  #2 (permalink)  
Antiguo 22/12/2013, 19:26
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 6 meses
Puntos: 36
Respuesta: Jquery sobre html cargado por ajax

http://api.jquery.com/on/

Saludos
  #3 (permalink)  
Antiguo 23/12/2013, 05:56
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Jquery sobre html cargado por ajax

Gracias por contestar, pero pasa lo mismo, sigue sin funcionar nada sobre cualquier elemento cargado con ajax :(

edito: creo que he encontrado la respuesta con .live(). Voy a ver si funciona.

Última edición por DandyCC; 23/12/2013 a las 06:14
  #4 (permalink)  
Antiguo 23/12/2013, 06:30
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Jquery sobre html cargado por ajax

Vaya, .live fue eliminado en la versión 1.9.

Sigo sin saber como narices acceder a esos elementos :(
  #5 (permalink)  
Antiguo 23/12/2013, 09:16
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 6 meses
Puntos: 36
Respuesta: Jquery sobre html cargado por ajax

Código Javascript:
Ver original
  1. $("elementoPadre").on("click","elementoGenerado",function(){
  2.  //...
  3. });

Prueba así

Saludos
  #6 (permalink)  
Antiguo 23/12/2013, 10:44
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Jquery sobre html cargado por ajax

Eso lo probé antes cuando me dijiste lo de la función .on pero tampoco funcionaba. El caso es que he hecho un pequeño ejemplo de prueba al margen de la web que estoy desarrollando y sí funciona, pero luego lo traslado al código real y nada. Seguiré investigando a ver donde la estoy cagando!

Gracias igualmente!
  #7 (permalink)  
Antiguo 23/12/2013, 11:11
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 6 meses
Puntos: 36
Respuesta: Jquery sobre html cargado por ajax

Te dejo un link que te puede ayudar

http://www.arumeinformatica.es/blog/...dinamicamente/

Saludos
  #8 (permalink)  
Antiguo 23/12/2013, 11:51
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Jquery sobre html cargado por ajax

Me cago en la leche!! Ya lo solucioné, soy idiota! Simplemente había escrito mal la clase de los elementos, en vez de "comentarios" había escrito "comentraios". Casi todo el día perdido por esta gilipollez! Que rabiaaaaaa!!!!

Muchas gracias por tus respuestas, gracias al método .on logré lo que pretendía, aunque tardase más por mi propia incompetencia!

Etiquetas: ajax
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:10.