Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2012, 11:24
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Problema con childs y parents

Buenas,

Tengo un problema de padres e hijos que no consigo resolver por más vueltas que le doy, y no parece dificil a priori, pero no lo consigo

Resulta que tengo un listado de productos <ul> </ul> cada <li> es un producto diferente. Dentro de cada <li> existe un botón para "sugerir", que lo único que hace es ocultar 3 divs y mostrar uno que está oculto, y si vuelve a pulsar lo deja todo como estaba antes.
Esto me funciona de forma individual para un producto, pero al haber más productos no consigo individualizar para que solo afecte al producto al cual he clicado.

Mi problema está a la hora de aplicar los efectos de ocultar y mostrar.

Estos son los efectos:

Código Javascript:
Ver original
  1. $(".sugerir").click(function () {
  2.         if ($(".sugerir").hasClass('activo')){
  3.             $(".sugerir_categoria").fadeOut("fast", "linear");
  4.             $(".info1").delay(300).fadeIn("fast", "linear");
  5.             $(".info2").delay(300).fadeIn("fast", "linear");
  6.             $(".info3").delay(300).fadeIn("fast", "linear");
  7.             $(".sugerir#oferta1").toggleClass("activo");
  8.         }else{
  9.             $(this).toggleClass("activo");
  10.             $(".info1").fadeOut("fast", "linear");
  11.             $(".info2").fadeOut("fast", "linear");
  12.             $(".info3").fadeOut("fast", "linear");
  13.             $(".sugerir_categoria").delay(300);
  14.             $(".sugerir_categoria").fadeIn("fast", "linear");
  15.         }
  16.     });

Y esta es la estructura html, he eliminado el contenido de las etiquetas para simplificar.

Código HTML:
Ver original
  1. <ul class="listado" id="items">
  2.     <li id="ofer1" class="producto">       
  3.     <div>
  4.         <span class="category">
  5.             <span class="sugerir" id="ofer1"></span>
  6.         </span>
  7.     </div>
  8.     <div class="content_producto">
  9.         <a class="titulo"></a>
  10.         <p class="descripcion"></p>    
  11.        
  12.         <!-- Esta es la capa que se MUESTRA -->
  13.         <div class="sugerir_categoria" id="ofer1"></div>
  14.  
  15.         <!-- Esta son las 3 capas que se OCULTAN -->       
  16.         <div class="info1"></div>
  17.         <div class="info2"></div>
  18.         <div class="info3"></div>
  19.     </div>
  20.     </li>
  21.    
  22.     <li id="ofer2" class="producto">
  23.     ....
  24.     </li>
  25. </ul>

Debo cambiar algo del html para que sea más fácil de identificarlo con jquery?

¿Sabéis cómo debo hacerlo?

Muchas gracias de antemano!