Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ejecutar Thickbox dentro de ajax

Estas en el tema de Ejecutar Thickbox dentro de ajax en el foro de Frameworks JS en Foros del Web. Hola, buenas a todos los foreros y no foreros. Tengo el siguiente problema: En un div listo el resultado de una consulta hecha a la ...
  #1 (permalink)  
Antiguo 27/05/2010, 11:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Ejecutar Thickbox dentro de ajax

Hola, buenas a todos los foreros y no foreros.

Tengo el siguiente problema: En un div listo el resultado de una consulta hecha a la BD. Este resultado lo pagino (lo divido en bloques de la cantidad que desee) y lo voy mostrado en el div a través de ajax para evitar tener que refrescar toda la pagina. Los resultados de la consulta tienen un enlace que al dar clic sobre ellos de abre una venta modal y muestra información de ese enlace. Para esto hago uso de thickbox. Qué me está pasando? Bueno, resulta cuando se carga la pagina, los primeros resultados al hacer clic se me abre correctamente la ventana modal... pero... al ir al siguiente bloque para ver los otros resultados ya no me abre la ventana modal sino que se me abre la pagina en la misma ventana... Qué puede estar pasando? Agradezco desde ya cualquier ayuda que me puedan dar.
  #2 (permalink)  
Antiguo 27/05/2010, 11:48
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Que al cargar mediante ajax de nuevo otra "página", con ella no cargas los archivos js. Piensa que para ese div, estás cargando una página nueva, por lo que necesitas de nuevo cargarlos. Mirate la funció get () de jquery.

Saludos =)
__________________
Neversyn Software e Ingeniería
  #3 (permalink)  
Antiguo 27/05/2010, 11:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

En un principio pensé eso que dices... pero resulta que tengo otro archivo.js en el cual tengo funciones que si se ejecutan dentro del nuevo div creado con ajax.
  #4 (permalink)  
Antiguo 27/05/2010, 12:11
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Mmmm... entonces, mira a ver si los archivos que cargan la función del thickbox utilizan $(document).ready(function(), que solo funciona al cargar la página, pero no en las rellamadas. Para ello, habría que usar la funcion live(). o, lo que te decia de cargar el mismo archivo con get()

Saludos!
__________________
Neversyn Software e Ingeniería
  #5 (permalink)  
Antiguo 27/05/2010, 12:20
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

Hola zeuslife... la segunda variante que me indicas no la tengo muy clara... aunque para serte sincero la primera tampoco pero hace un rato leí algo al respecto. Volveré al estudio a ver que hay con la funcion live y como se emplea. Si me das algun ejemplo de las variantes que me propones pues mejor.

gracias por responderme.
  #6 (permalink)  
Antiguo 27/05/2010, 12:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

ah!!! y si... el archivo del thickbox si usa $(document).ready(function()
  #7 (permalink)  
Antiguo 27/05/2010, 12:38
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Pues ahí tienes el fallo. Lo otro te funciona porque no utiliza $(document).ready(function(), y por lo tanto se ejecuta siempre (me refiero a tu otro archivo js que dices), pero ese, solo está "cargado" en la página principal. Una vez que cargas "otra", esta no puede contar con ese contenido. Para eso consulta esa función, si. No tengo ahora ningún ejemplo del live, pero ahora te busco lo del get y te lo pongo.
__________________
Neversyn Software e Ingeniería
  #8 (permalink)  
Antiguo 27/05/2010, 12:40
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Aqui tienes:

$.getScript("test.js", function(){
alert("Script loaded and executed.");
});

(http://www.anieto2k.com/2009/08/18/5...ax-con-jquery/)
__________________
Neversyn Software e Ingeniería
  #9 (permalink)  
Antiguo 27/05/2010, 12:48
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

Muchas gracias zeuslife... me pondré en funciones ahora mismo.
  #10 (permalink)  
Antiguo 27/05/2010, 12:49
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Vale, ya me cuentas =)!
__________________
Neversyn Software e Ingeniería
  #11 (permalink)  
Antiguo 27/05/2010, 14:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

Uf!!!... no doy pie con bola... ta una variante como la otra... donde la uso? en el head o en el js como tal... la del get como lo que hace es cargar un archivo.js supongo que vaya en el head, dentro del div o antes de este... tampoco estoy claro que debo poner dentro de la función... donde se ejecuta el alert(). El live() estuve leyendo pero no tengo claro donde hacer esos cambios... en fin, que esto me llevará mucho más tiempo del que pensé.
  #12 (permalink)  
Antiguo 27/05/2010, 14:28
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Simplemente tienes que poner el getScript en el archivo que cargas con los contenidos del mysql (algo como mostrar.php o lo que tengas), y llamar a todos los archivos del thickbox. Deja lo del live de lado :)
__________________
Neversyn Software e Ingeniería
  #13 (permalink)  
Antiguo 27/05/2010, 14:39
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

Eso he echo... en el archivo que se carga dentro del div coloco lo siguiente, al inicio:

echo "<script>

$.getScript(\"jscript/jquery-1.4.2.js\", function(){
alert(\"Script loaded is jquery-1.4.2.\");
});

$.getScript(\"jscript/thickbox.js\", function(){
alert(\"Script loaded is thickbox.\");
});

</script>
";

Y ni siquiera los alert se cargan...
  #14 (permalink)  
Antiguo 27/05/2010, 14:43
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

No hombre, pero el jquery no lo vuelvas a cargar!! Si tienes alguna función que inizalize el thickbox, cargala también metiendola en otro .js. Y, también carga el thickbox.js- Y si con eso no va...
__________________
Neversyn Software e Ingeniería
  #15 (permalink)  
Antiguo 27/05/2010, 14:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

Dicen que el que persevera triunfa... y gracias a que siempre tengo esto presente, siempre logro mis objetivos.

Al final me fui por el live()... en el archivo thickbox.js modifiqué la siguiente función function tb_init():

function tb_init(domChunk){
$(domChunk).live("click", function(){
var t = this.title || this.name || null;
var a = this.href || this.alt;
var g = this.rel || false;
tb_show(t,a,g);
this.blur();
return false;
});
}

Antes la segunda linea era $(domChunk).click(function()... De esta forma ya he solucionado el problema. Espero que esto le sirva a otros. Una vez más muchas gracias, zeuslife, por la ayuda que me has brindado.
  #16 (permalink)  
Antiguo 27/05/2010, 15:07
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Bueno, aunque mi ayuda no ha sido muy valiosa, de nada =)

Saludos!!
__________________
Neversyn Software e Ingeniería
  #17 (permalink)  
Antiguo 27/05/2010, 15:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejecutar Thickbox dentro de ajax

No hombre, al contrario... su ayuda me fue muy útil pues me alumbró el camino a seguir.
  #18 (permalink)  
Antiguo 27/05/2010, 15:19
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Ejecutar Thickbox dentro de ajax

Pues me alegro de haberte sido útil :)

Saludos y suerte!!
__________________
Neversyn Software e Ingeniería

Etiquetas: ajax, carga, thickbox
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 22:06.