Eu só dei uma limpadinha nele e adicionei um trechinho com a ajuda do siola para exibir indicadores de aberto e fechado.<script language="JavaScript" type="text/javascript">
window.onload = function()
{
var cookies = document.cookie;
cookienome = 'Photoshop';
if ( cookies )
{
var inicio = cookienome.length+1;
var fim = cookies.length;
if ( new RegExp( cookienome+'=' ).test( cookies ) )
{
mostcookie = cookies.slice( inicio, fim );
document.getElementById( mostcookie ).style.display = 'block';
}
else
{
ul = document.getElementById( 'menus' ).getElementsByTagName( 'ul' );
for ( i=0; i < ul.length; i++ )
{
ul.item( i ).style.display = 'none';
}
}
}
}
function gravaCookie( a, b )
{
data = new Date();
data.setTime( data.getTime() + (60*60*24*1000) );
var expires = ";expires=" + data.toGMTString();
document.cookie = cookienome + '=' + a + expires;
if ( b )
{
var expires = ";expires=''";
document.cookie = cookienome + '=' + expires;
}
}
function submenu( menu )
{
sm = document.getElementById( menu );
if(sm.style.display=="none")
{
document.getElementById(menu + "_span").innerHTML = "[-]";
ul = document.getElementById( "menus" ).getElementsByTagName( "ul" );
for( i=0; i<ul.length; i++ )
{
ul.item( i ).style.display = "none";
}
sm.style.display = "block";
gravaCookie( menu,false );
}
else
{
document.getElementById(menu + "_span").innerHTML = "[+]";
sm.style.display = "none";
gravaCookie( "",true );
}
}
</script>
Sua utilização é:
<div id="menus">
<a href="java script:;" onclick="submenu('sub');">Menu um</a>
<ul id="sub" style="display:none;">
<li> xxxxx </li>
<li> xxxxx </li>
<li> xxxxx </li>
</ul>
<br />
<a href="java script:;" onclick="submenu('subdois');">Menu dois</a>
<ul id="subdois" style="display:none;">
<li> zzzzz </li>
<li> zzzzz </li>
<li> zzzzz </li>
</ul>
</div>
Pois bem isso faz com que um <UL> abra três <LI>'s que estavam ocultos.
E ainda grava um cookie para o caso da pessoa transitar entre páginas e querer "saber onde estava".
Pois bem funciona direitinho, mas para meu caso preciso de algo um pouco a mais.
Para minha situação eu preciso que cada <UL> abra um segundo <UL> e esse segundo <UL> abra o(s) <LI>'s.
Assim:
<UL>
---<UL>
-------<LI>
-------<LI>
-------<LI>
----</UL>
</UL>
Abrindo e fechando claro
Creio que vá precisar de alterações no código, talvez até a criação de uma quarta função, para manipular o outro nível.
OU se alguém puder ou tiver uma função "mais limpa" (porque essa eu não entendi muito ) e que faça "tudo de uma vez" (ou usando um só código) seria bom demais e solucionaria uma penca de problemas aqui pra mim.
[]'s