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

Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Estas en el tema de Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq? en el foro de Frameworks JS en Foros del Web. Hola amigos..!! Hacia la leche que no aparecía por estos lares... bueeno.. y como no, siempre que aparezco, es con problemas jajajaja En esta ocasión ...
  #1 (permalink)  
Antiguo 03/06/2009, 07:20
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años, 7 meses
Puntos: 0
Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Hola amigos..!!

Hacia la leche que no aparecía por estos lares... bueeno.. y como no, siempre que aparezco, es con problemas jajajaja

En esta ocasión tengo un problema que no se por donde pillarlo.

Tengo un div y dentro de este mismo una imagen, con un enlace que lo que hace es abrir esa imagen ampliada usando el SHADOWBOX (otra variante del lightbox).

esto funciona genial.

Ahora bien, tengo un boton, que al hacer click, reemplaza el contenido de dicho DIV por otra imagen, que también tiene incluido un enlace para abrir la ampliación de esta nueva imagen en el SHADOWBOX, pero en este caso, se lo pasa por el forro y no consigo hacerlo funcionar... como si al hacer el innerHTML no entendiera la clase respectiva que hace que se abra la imagen en el SHADOWBOX...

Ejemplo:

Código HTML:
<div id="imagen-principal"><a rel="shadowbox[PROD]" title="Ref: 1234 | nombre producto" href="imagenes/img-ampliada.jpg"><img src="imagenes/img-thumbnail.jpg" width="316" height="316" alt="Ref: 1234 | nombre producto" /></a></div> 
Código del botón que realiza el replace del contenido del DIV "imagen-principal":

Código:
document.getElementById("imagen-principal").innerHTML = '<a rel="shadowbox[PROD]" title="Ref: 12345 | nombre producto2" href="imagenes/img-ampliada2.jpg"><img src="imagenes/img-thumbnail2.jpg" width="316" height="316" alt="Ref: 12345 | nombre producto 2" /></a>';
vamos a ver si me podéis echar una mano cracks! por que no se por donde pillarlo... cuando hago el document.get.....innerTML.. se pasa por el forro el rel="shadowbox" .... no le hace ni caso...! y lo necesito!!

Gracias.
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #2 (permalink)  
Antiguo 03/06/2009, 07:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Es que con sólo poner rel="shadowbox" no es que automáticamente ya funcione. Debes nuevamente lanzar la función (normalmente es init() o algo así) que asigne el comportamiento deseado a los enlaces.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/06/2009, 07:35
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Cita:
Iniciado por David el Grande Ver Mensaje
Es que con sólo poner rel="shadowbox" no es que automáticamente ya funcione. Debes nuevamente lanzar la función (normalmente es init() o algo así) que asigne el comportamiento deseado a los enlaces.
Mmmm-... cuando esa página se inicia ya tiene en el init() la inicialización del objeto...

por eso, pense que como tan solo hace un replace del contenido de un div, no hacía falta inicializar nada...

entonces, aunque ejecute un innerHTML para que el objeto actue sobre ese link con el rel="...." he de volver a lanzar la función de inicialización?
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #4 (permalink)  
Antiguo 03/06/2009, 07:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Sí, dependiendo del caso. Ya que el init() es el que asigna las acciones correspondientes al elemento. No sé si la librería que mencionas dispone de otra función para convertir enlaces por separado, de lo contrario, tendrás que volver a lanzar init()
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 03/06/2009, 07:47
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Pues lo voy a probar... muchas gracias... no había caído en ello ;)
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #6 (permalink)  
Antiguo 04/06/2009, 01:38
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Pues no hay manera, ni inicializando de nuevo el objeto...

Este objeto cuando se carga la página se inicializa así...
Código:
$(document).ready(function(){
			
			var options = {
				loadingImage: "<?=BASE_PATH . CONS_WEBIMAGENES;?>loadingAnimation.gif",
				animateFade: true,
				counterType:'skip',
				continuous:true,
				animSequence:'hw'
			};
	
			Shadowbox.init(options);
    });
y justo después de ejecutar el document.getElementBy...innerHTML, llamo a esta función...

Código:
function reloadShadowbox(){
			var options = {
				loadingImage: "..imagenes/loadingAnimation.gif",
				animateFade: true,
				counterType:'skip',
				continuous:true,
				animSequence:'hw'
			};
			
			Shadowbox.init(options);
			alert("ok");
	}
pero nada... sigue sin funcionar al cargar la nueva imagen con el enlace para abrir la imagen ampliada en el shadowbox...
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #7 (permalink)  
Antiguo 04/06/2009, 06:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

¿Cuál es la dirección de la librería que mencionas? No la he usado, pero revisando sus métodos puede que encuentre algo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 04/06/2009, 06:43
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

esta es su web -> http://www.shadowbox-js.com/
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
  #9 (permalink)  
Antiguo 04/06/2009, 07:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Al reemplazar el contenido de un DIV, no funciona el shadowbox...xq?

Revisando la documentación, veo que existe el método setup() que te puede sevir.
Algo así:
Código Javascript:
Ver original
  1. var enlace = document.getElementById("imagen-principal").getElementsByTagName("a")[0];
  2. Shadowbox.setup(enlace, { gallery: "PROD" });
Puedes revisar la API para más detalles:
http://www.shadowbox-js.com/api.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 06:34.