Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/10/2011, 09:33
Avatar de cristian_cena
cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
Problemas ocultando divs con jquery

Hola compañeros, resulta que estoy teniendo un problema para "mostrar y ocultar" divs.

Voy creando un menu (ul -> li -> a) y en el atributo href del enlace almaceno un texto con la forma #tab(+ id del producto), o sea, me quedan con la forma:
#tab-1
#tab-2
#tab-n
Aclarar que las id del producto las traigo con php de una base de datos.

Luego creo los mismos textos y los voy pasando como id a una serie de divs
Aquí el código:

Código HTML:
Ver original
  1. <ul id="submenu">
  2.                     <?php
  3.                    $grupos = getGrupos($producto["idproductos"]);
  4.                    foreach ($grupos as $grupo):
  5.                    ?>
  6.                     <li class="sm_item"><a href="#tab-<?php echo $grupo['idgrupos']; ?>"><?php echo $grupo['nombre']?></a></li>                      
  7.                     <?php
  8.                    endforeach;
  9.                    ?>
  10.                 </ul>
  11.                 <div id="wrapSubmenuContenido">
  12.                     <?php
  13.                    $grupos = getGrupos($producto["idproductos"]);
  14.                    foreach ($grupos as $grupo):
  15.                    ?>
  16.                     <div id="#tab-<?php echo $grupo['idgrupos']; ?>" class="items_submenu">
  17.                         <?php
  18.                        $caracteristicas = getCaracteristicasPorGrupo($grupo['idgrupos']); //var_dump($caracteristicas);
  19.                        foreach ($caracteristicas as $fila):
  20.                        //$idgrupo = $fila["grupos_idgrupos"];
  21.                        //$grupo = getGrupo($idgrupo);
  22.                        $imagen = getImagenes($fila["file_manager_idfile_manager"]);    
  23.                        ?>  
  24.                         <div class="float_contenido_submenu">  
  25.                             <img src="back/files/images/large/<?php echo $imagen[0]["src"];?>" width="316px" height="190px"/>
  26.                             <p><?php echo $fila["description"]; ?></p>  
  27.                         </div>
  28.                         <?php
  29.                        endforeach;
  30.                        ?>
  31.                     </div>    
  32.                     <?php
  33.                    endforeach;
  34.                    ?>    
  35.                 </div>

Luego abajo nomás escribo código javascript (jquery) en donde según el item del menú que clickee identifico el div y lo oculto. Acá el problema, esto no funciona.

en la variable activeTab busco el tributo href del enlace del item de menu que hago click. ya que es igual al id del div que deseo eliminar
activeTab = $(this).find("a").attr("href");

activeTab almacena perfectamente el texto (ejemplo "#tab-17") pero cuando hago $(activeTab).hide() no elimina el div, no se porque no me hace caso.

Aquí el código:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.                 $(document).ready(function(){
  3.  
  4.                     $(".items_submenu").hide();
  5.                     $("#submenu li:first").addClass("submenu_active");
  6.                     $(".items_submenu:first").show();
  7.  
  8.                     $("#submenu li").live('click', function(){
  9.                         $("#submenu li").removeClass("submenu_active");
  10.                         $(this).addClass("submenu_active");
  11.                         //$(".items_submenu").hide();
  12.  
  13.                         var activeTab = $(this).find("a").attr("href");
  14.                         alert(activeTab);
  15.                         $(activeTab).hide()
  16.                         //return false;
  17.                     });
  18.  
  19.                 });
  20.             </script>

Desde ya muy agradecido por su ayuda, cualquier link o sugerencia es bienvenida.

Saludos.






EDITO: ACÁ LO PUEDEN VER MÁS CLARO


Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  3.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  4.     <title></title>
  5.     <style type="text/css">
  6.     /*#submenu .sm_item a*/
  7.     .submenu_active{
  8.         font-weight:bold;
  9.     }
  10.     #wrapSubmenuContenido{
  11.         background:red;
  12.         width:100%;
  13.         position:relative;
  14.     }
  15.     /*#tab-N*/ .items_submenu {
  16.         overflow:hidden;
  17.         background:green;
  18.         margin-bottom:10px;
  19.     }
  20.     .float_contenido_submenu{
  21.         width:320px;
  22.         height:250px;
  23.         float:left;
  24.     }
  25.     </style>
  26.     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
  27.     <script type="text/javascript">
  28.     $(document).ready(function(){
  29.         $(".items_submenu").hide(); //Hide all content
  30.         $("#submenu li:first").addClass("submenu_active");
  31.         $(".items_submenu:first").show(); //Show first tab content
  32.  
  33.         $("#submenu li").live('click', function(){
  34.             $("#submenu li").removeClass("submenu_active"); //Remove any "active" class
  35.             $(this).addClass("submenu_active"); //Add "active" class to selected tab
  36.             $(".items_submenu").hide(); //Hide all tab content
  37.  
  38.             activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
  39.             $(activeTab).show(); //Fade in the active ID content
  40.             //return false;
  41.         });
  42.  
  43.     });
  44.     </script>
  45. </head>
  46. <ul id="submenu">
  47.     <li class="sm_item"><a href="#tab1">uno</a></li>                      
  48.     <li class="sm_item"><a href="#tab2">dos</a></li>    
  49. </ul>
  50. <div id="wrapSubmenuContenido">
  51.     <div id="#tab1" class="items_submenu">
  52.         <div class="float_contenido_submenu">  
  53.             <p>uno</p>  
  54.         </div>
  55.     </div>    
  56.     <div id="#tab2" class="items_submenu">
  57.         <div class="float_contenido_submenu">  
  58.             <p>dos</p>  
  59.         </div>
  60.     </div>  
  61. </div>
  62.  
  63. </body>
  64. </html>

Última edición por cristian_cena; 13/10/2011 a las 10:32