Comunidad de diseño web y desarrollo en internet online

[AYUDA] Menu Accordion con jQuery

Citar            
MensajeEscrito el 02 Feb 2012 09:24 pm
Como hago para que me funcione bien de este modo. El problema es en el body, cuando agrego en el div(id=firstpane) "<table><tbody><tr><td>" no funciona correctamente, el menu tendria que abrir y cerrar el que esta abierto pero no me funciona por el "<td>" si le quito solo el "<td>" funciona correctamente pero si se lo dejo no funciona. Ya se que me van a decir que se lo quite pero no puedo necesito que funcione así, no se que mas debo agregar en jQuery para que funcione. Lo que quiero en si es que el 1ro. funcione como el 2do. Ayudenme porfavor.

Código HTML :

<html> 
<head>
<title>Menu </title>
<meta charset="utf-8">
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js' type='text/javascript'></script>
<script language="javascript">
$(document).ready(function(){
     $("#firstpane p.menu_head").click(function(){
          $(this).removeClass("menu_head").addClass("menu_head_open").next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
          $(this).siblings().removeClass("menu_head_open").addClass("menu_head");
     });
     $("#firstpane2 p.menu_head").click(function(){
          $(this).removeClass("menu_head").addClass("menu_head_open").next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
          $(this).siblings().removeClass("menu_head_open").addClass("menu_head");
     });
});
</script>
<style>
.menu_list {
   width: 360px; /* Ancho del menú */
   background-color:rgba(0,153,255,1);
   -webkit-border-bottom-left-radius:0px;
   -webkit-border-bottom-right-radius:0px;
   -webkit-border-top-right-radius:3px;
   -webkit-border-top-left-radius:3px;
   -moz-border-radius-bottomleft:0px;
   -moz-border-radius-topleft:0px;
   -moz-border-radius-bottomright:3px;
   -moz-border-radius-topright:3px;
   border-bottom-left-radius:0px;
   border-top-left-radius:0px;
   border-bottom-right-radius:3px;
   border-top-right-radius:3px;

}
.menu_list:hover { z-index:5; }
.menu_list table{
   width:100%;
}

.menu_head {
   padding: 5px 10px;
   color:#FFF; /* Color de las pestañas principales */
   cursor: default;
   position: relative;
   margin:1px;
   margin-left:0;
   margin-right:0;
   font-weight:bold;
   font-size:13px;
   background-color:transparent;
   background-image: url(../imgs/flecha-abajo.png);
   background-position:center right;
   background-repeat:no-repeat;
}
.menu_head:hover { background-color:rgba(4,82,128,.7); color:#FFFFFF; }
.menu_head_open {
   padding: 5px 10px;
   color:#FFF; /* Color de las pestañas principales */
   cursor: default;
   position: relative;
   margin:1px;
   margin-left:0;
   margin-right:0;
   font-weight:bold;
   font-size:13px;
   background-color:rgba(4,82,128,.7);
   background-image: url(../imgs/flecha-arriba.png);   
   background-position:center right;
   background-repeat:no-repeat;
}
.menu_body { display:none; background-color:rgba(4,82,128,.7); background-image:none; padding-left:20px; margin-top:-1px;}
.menu_body a{
   display:block;
   color:#FFF; /* Color de los enlaces */
   padding-top:8px;
   font-weight:bold;
   text-decoration:none;
   border-bottom:1px dotted #fff;
}
.menu_body a:hover{
   color: #fff; /* Color de los enlaces al pasar el cursor */
   border:1px dotted #FFF;
}
</style>
</head>

<body>
Con table
<div id="firstpane" class="menu_list">
<table>
<tbody>
 <tr>
  <td>
    <p class="menu_head">Menu 1</p>
        <div class="menu_body">
            <a href="#">Opc 1</a>  
            <a href="#">Opc 2</a>  
            <a href="#">Opc 3</a>  
            <a href="#">Opc 4</a>  
        </div>
  </td>
 </tr>
 <tr>
  <td>
    <p class="menu_head">Menu 2</p>
        <div class="menu_body">
           <a href="#">Opc 1</a>
           <a href="#">Opc 2</a>
           <a href="#">Opc 3</a>
        </div>
  </td>
 </tr>
 <tr>
  <td>
   <p class="menu_head">Menu 3</p>
        <div class="menu_body">
            <a href="#">Opc 1</a>
            <a href="#">Opc 2</a>
            <a href="#">Opc 3</a>
            <a href="#">Opc 4</a>
        </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<hr>
Sin table
<div id="firstpane2" class="menu_list">
    <p class="menu_head">Menu 1</p>
        <div class="menu_body">
            <a href="#">Opc 1</a>  
            <a href="#">Opc 2</a>  
            <a href="#">Opc 3</a>  
            <a href="#">Opc 4</a>  
        </div>
    <p class="menu_head">Menu 2</p>
        <div class="menu_body">
           <a href="#">Opc 1</a>
           <a href="#">Opc 2</a>
           <a href="#">Opc 3</a>
        </div>
   <p class="menu_head">Menu 3</p>
        <div class="menu_body">
            <a href="#">Opc 1</a>
            <a href="#">Opc 2</a>
            <a href="#">Opc 3</a>
            <a href="#">Opc 4</a>
        </div>
</div>


</body>
</html>

Por Clestuardo

6 de clabLevel



 

Guatemala

firefox
Citar            
MensajeEscrito el 02 Feb 2012 10:25 pm
Como sugerencia deberías utilizar las etiquetas de acuerdo con su valor semántico.

Las tablas son para tabular información y las etiquetas <p> son para párrafos de texto.

Seguro que si hicieras las cosas bien no tendrías ese tipo de problemas.

saludos.

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 03 Feb 2012 12:16 am
lo que pasa es que trabajo con genexus y lo pongo dentro de un freestylegrid y le pone la tabla automáticamente.

Por Clestuardo

6 de clabLevel



 

Guatemala

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.