Foros del Web » Programando para Internet » Javascript »

Menú desplegable con onClick y divs

Estas en el tema de Menú desplegable con onClick y divs en el foro de Javascript en Foros del Web. Bueno, aquí estoy otra vez... Últimamente doy tela de trabajo ^^Uu... A ver, tengo un menú que se imprime en php. Los datos del menú ...
  #1 (permalink)  
Antiguo 10/09/2008, 15:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Menú desplegable con onClick y divs

Bueno, aquí estoy otra vez... Últimamente doy tela de trabajo ^^Uu...

A ver, tengo un menú que se imprime en php. Los datos del menú son sacados de una base de datos MySQL. Se cargan secciones y subsecciones dentro de cada sección... El problema es que quiero que al hacer click en el nombre de cada sección, se oculte o se muestre la subsección. Hasta ahora he conseguido hacerlo usando la propiedad innerHTML desde javascript, pero el contenido de las subsecciones lo establecía desde una variable en javascript, así que de cargar los datos de la base de datos, nada de nada....

Tengo algo así:

Código:
function Submenus (opcion, seccion)
{
   var cadena = "";
   
   if (opcion == "mostrar")
  {
      cadena = "subsecciones";
      document.getElementById(seccion).innerHTML = cadena;
  }
  else
  {
      document.getElementById(seccion).innerHTML = cadena;
  }
}
La celda donde se carga la cadena (porque ahora mismo lo cargo en una celda, no en un div), tiene puesto por defecto el height a 0, y cuando imprimo contenido dentro de ella, se ensancha, y da el pego...

Lo que yo kiero que "cadena" sea el contenido de la base de datos, y no una simple variable definida desde el propio script, así que había pensado cargar el contenido de las secciones en divs, y ponerlos ocultos o con height 0 y luego volverlos visibles o que se adapte el height al contenido del div...

He estado probando esto, pero no me funciona muy bien...
Código HTML:
<html>
  <head>
  <style>
    .estilo1 {
      width: 0px; height: 0px; overflow: hidden;
    }
    .estilo2 {
      width: 0px; height: 0px; overflow: visible;
    }
  </style>
  <script>
    function capa()
    {
      var estilo = document.getElementById("capa").className;
      if (estilo == "estilo1")
      {
        document.getElementById("capa").className = "estilo2";
      }
      else
      {
        document.getElementById("capa").className = "estilo1";
      }
    }
  </script>
  </head>
  <body>
    <div id="capa" class="estilo1">
      hola
      <br />
      adios
      <br />
      hello
      <br />
      bye
    </div>
    <input type="button" name="boton" id="boton" value="CLICK" onClick="capa()" />
  </body>
</html> 
Alguna sugerencia? :S
  #2 (permalink)  
Antiguo 10/09/2008, 19:38
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Menú desplegable con onClick y divs

por que no mejor pruebas con display: block y display: none? Es mas sencillo.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 12/09/2008, 09:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Menú desplegable con onClick y divs

Voy a probarlo y luego te comento (de momento en una prueba muy fácil me ha resultado, a ver si lo puedo adaptar al html tan reliado de la web) ;)
  #4 (permalink)  
Antiguo 13/09/2008, 10:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Menú desplegable con onClick y divs

Funciona perfectamente, y al final lo he podido adaptar perfectamente a mis tablas... el problema ahora me lo da firefox, que al desplegar la sección que sea más de una vez, me desplaza la subsección a la derecha de manera gradual contra más veces despliegas la subsección, y lo curioso es que sólo lo hace en firefox, ni en IE7 ni en Safari... Alguna idea de xq hace esas cosas tan raras :S ???
  #5 (permalink)  
Antiguo 14/09/2008, 09:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Menú desplegable con onClick y divs

Pregunta: ¿Una celda de una tabla en firefox es compatible con el uso de la propiedad display:block? Es que desde que estoy usando esa propiedad para mostrar y ocultar las celdas de los submenus me está dando muchos problemas en Firefox (va perfecto en IE y en Safari)... ¿Alguna otra idea para mostrar y ocultar ciertas celdas de una tabla sin que falle en Firefox (ni en IE y Safari, of course)? Es que no puedo dejar lo del firefox así...

PD: Me acabo de dar cuenta, perdón por el triple post...

------- E D I T --------

Al final he encontrado por ahí que para las celdas no debo usar display:block, sino display:table-cell, ya que Firefox no interpreta bien lo del block (aunq IE y Safari sí)... ¿Por qué no se regirán todos los navegadores por el mismo patrón CSS? Qué dificil es hacer una página que se visualice bien en todos los navegadores ¬¬

Muchas gracias por sus aportes de todas formas ;)

Última edición por Masane; 14/09/2008 a las 09:15
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 17:27.