JavaScript - menu()

 
Vista:

menu()

Publicado por can3va (1 intervención) el 09/03/2006 11:26:19
Os situo:
Estamos en un menu desplegable en árbol, al hacer click en cualquiera de las secciones el menú se despliega una subsección mediante el siguinte script:

function menu(opt)
{
modo=document.getElementById(opt).style.display
if (modo=='inline'){
document.getElementById(opt).style.display='none';
}
else{
document.getElementById(opt).style.display='inline';
}
}

El problema es que si por ejemplo tenemos el menu así:

Menu:
- Sección1
- Sección2
- Sección3

Y clickeamos en Sección1 tendríamos:

Menu:
- Sección1
-----Subsección1.1
-----Subsección1.2
- Sección2
- Sección3

Y si clickeamos en Sección2 tendríamops:

Menu:
- Sección1
-----Subsección1.1
-----Subsección1.2
- Sección2
-----Subsección2.1
-----Subsección2.2
- Sección3

Y lo que quiero es que se oculten las subsecciones abiertas una vez que pinchas en otra sección es decir que quedara así al pinchar en Sección2:

Menu:
- Sección1 (Se ha ocultado las subsecciones)
- Sección2
-----Subsección2.1
-----Subsección2.2
- Sección3

La única manera mediante la cual he conseguido esto es llamando a la función varias veces desde el mismo evento con ids diferentes, por ejemoplo para que al pinchar en Sección2 se desplieguen las subsecciones2.1 y 2.2 y se oculte las subsecciones1.1 y 1.2 bastaría con llamar a menu(seccion2) y menu(seccion1) pero claro, esto tiene el inconveniente de que tiens que estar metiendo en cada evento todos los identificadores de cada subseccion y me gustaría poder encontrar una manera de tal forma que quedara así el scrip:

Si el evento se ha producido en el objeto Seccion1 despliega sus subsecciones y repliega cualquier otro objeto que no sea seccion1.

La duda está en que no se como identificar mediante javascript a "cualquier otro objeto(id)" que no sea el que llama a la función, en este caso la id=seccion1.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:menu()

Publicado por bea (21 intervenciones) el 04/04/2006 13:19:48
Hola!
Igual puedes crear una funcion que haga el collapse de todos los menus, y cada vez que hagan click en una carpeta, llamas a esta funcion para que cierre todas las carpeta y seguido llamas a la funcion que abra la carpeta del identificador que ha seleccionado pinchando..

Que te parece?

Saludos

Bea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar