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

Plugin y namespaces..

Estas en el tema de Plugin y namespaces.. en el foro de Frameworks JS en Foros del Web. Buenas tardes, estoy haciendo un plugin sencillo para una galería de fotos.. en verdad varias galerias y es aqui donde me viene el problema.. Esta ...
  #1 (permalink)  
Antiguo 28/11/2011, 09:37
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Plugin y namespaces..

Buenas tardes,
estoy haciendo un plugin sencillo para una galería de fotos.. en verdad varias galerias y es aqui donde me viene el problema..
Esta es la estructura de cada geleria, hay mas de una en una misma página:

div.viewer: carga la foto ampliada en la imagen que la contiene.
div.thumbs: contiene las imagenes en miniatura de la galeria, al clickearlas muestra la imagen grande.

Código HTML:
Ver original
  1. <div class="photo-gallery">
  2.     <div class="viewer"><img src="" /></div>
  3.     <div class="thumbs">    
  4.         <a href=""><img src="" width="100" /></a>
  5.         <a href=""><img src="" width="100" /></a>
  6.         <a href=""><img src="" width="100" /></a>
  7.     </div>
  8. </div>

Aplico el plugin a todas las galerias que encuentre en la pagina
Código Javascript:
Ver original
  1. $('.photo-gallery').photoGallery(); //

Y el problema en sí con el plugin es el siguiente:

Código Javascript:
Ver original
  1. (function($) {
  2.     $.fn.extend({
  3.         photoGallery: function() {
  4.        
  5.         // agrego los event listeners a cada miniatura
  6.             $(this).find('a').live('click',function(e){
  7.                 e.preventDefault();
  8.                 thumb = $(this);
  9.                 larger = thumb.attr('href');
  10.                 thumb.parent().parent().find('.viewer').find('img').attr('src',larger);
  11.             });
  12.         // sin problemas hasta aqui
  13.  
  14.        
  15.         $(this).find('.viewer').find('img').attr('src','url_primera_imagen_del_album.jpg');        
  16.                                            
  17.         }
  18.     });
  19. })(jQuery);

Lo que intento hacer es que cargue en todas las galerías la primera imagen en el div.viewer, y lo que sucede es que me carga la misma imagen en todas las galerias.

Como si el $(this) hace refereria a todas las galeria y no a cada una en particular..

Hay forma de solucionar ésto?
Espero haberme explicado bien..
Muchas gracias por su ayuda!

Saludos

Última edición por McBlink; 28/11/2011 a las 09:40 Razón: Ortografía

Etiquetas: jquery, plugin
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 11:28.