Ir para conteúdo
Fórum Script Brasil
  • 0

Tó com Duvida em Arvore


Dog@o-D2

Pergunta

olha não estou conseguindo colocar um arquivo file quando chega no nodo da arvore só fica aparecendo uma pastinha fechada, como faço pra saber se é o ultimo nodo pra por um arquivinho tá aí o código, ajuda aê.

<html>
<head></head>

<style>
/* fazendo a estilização visual via CSS */
.aberto{ display:block; }
.paiaberto{ list-style-image: url(../menu/folder.gif); }
/* espaçamento pro IE */
* html .paiaberto { padding-left: 3px; }

.fechado{ display:none; }
.paifechado{ list-style-image: url(../menu/folder-closed.gif);}
/* espaçamento pro IE */
* html .paifechado { padding-left: 5px;}

.file{ display:none; }
.paifile{ list-style-image: url(../menu/file.gif);}
/* espaçamento pro IE */
* html .paifile { padding-left: 5px;}



.style1 {font-family: Arial}
</style>

<script>

function menuAbre(lipai) {
/* função que muda a classe CSS dos elementos da lista
de forma a abrir e fechar a árvore */

if(lipai.nodeName=="LI"){
//pegando o primeiro ul
var ulfilho = lipai.getElementsByTagName ("ul")[0];

if(ulfilho.className.indexOf('aberto')<0 && ulfilho.className.indexOf('fechado')<0){
//definindo um estado inicial caso não haja
ulfilho.className = ulfilho.className + " aberto";
}
if(lipai.className.indexOf('paiaberto')<0 && lipai.className.indexOf('paifechado')<0){
//definindo um estado inicial caso não haja
lipai.className = lipai.className + " paiaberto";
}
//fazendo a troca
if(ulfilho.className.indexOf('aberto')>-1){
ulfilho.className = ulfilho.className.replace("aberto","fechado");
}else{
ulfilho.className = ulfilho.className.replace("fechado","aberto");
}
//mudando a imagem do li pai
if(lipai.className.indexOf('paiaberto')>-1){
lipai.className = lipai.className.replace("paiaberto","paifechado");
}else{
lipai.className = lipai.className.replace("paifechado","paiaberto");
//abrindo os LIs avôs.
var liavo = lipai.parentNode.parentNode;
var avoulfilho = liavo.getElementsByTagName ("ul")[0]
while(liavo.nodeName=="LI"){
avoulfilho.className = avoulfilho.className.replace("fechado","aberto");
liavo.className = liavo.className.replace("paifechado","paiaberto");
liavo = liavo.parentNode.parentNode; //avo do avo
}
}
}
return false; //cancelando o link
}

function fechaTodas(quem){
/* função para fechar inicialmente todos os elementos
da árvore se desejar */
var lis = document.getElementById(quem).getElementsByTagName("li");
for (var i=0; i < lis.length; i++){
if(lis[i].className.indexOf("paiaberto")>-1 || lis[i].className.indexOf("paifechado")>-1){
lis[i].className = lis[i].className.replace("paiaberto","paifechado");
}else{
lis[i].className += " paifechado";
}
}
var uls = document.getElementById(quem).getElementsByTagName("ul");
for (var i=0; i < uls.length; i++){
if(uls[i].className.indexOf("aberto")>-1 || uls[i].className.indexOf("fechado")>-1){
uls[i].className = uls[i].className.replace("aberto","fechado");
}else{
uls[i].className += " fechado";
}
}
}

</script>

<body onload="fechaTodas('menuteste')">
<ul class="style1" id="menuteste">
<li><a href="#" onclick="fechaTodas('menuteste'); menuAbre(this.parentNode)">Relat&oacute;rios</a>
<ul>
<li><a href="#" onclick="fechaTodas('menuteste'); menuAbre(this.parentNode)">Inscri&ccedil;&otilde;es</a>

<ul>
<li><a href="">Por Cidade</a></li>
<li><a href="">Por Sexo</a></li>
<li><a href="">Por Defici&ecirc;ncia</a></li>
<li><a href="">Por Uso das M&atilde;os</a></li>
<li><a href="">Por Ano de Conclus&atilde;o do Ensino M&eacute;dio</a></li>
</ul>
</li>
<li><a href="">itens 1.2</a></li>
</ul>
</li>
<li><a href="#" onclick="fechaTodas('menuteste'); menuAbre(this.parentNode)">itens 2</a>
<ul>
<li><a href="#" >itens 2.1</a></li>
<li><a href="">itens 2.2</a></li>
<li><a href="">itens 2.3</a></li>
<li><a href="">itens 2.4</a></li>
</ul>
</li>
</ul>
</body>
</html>[/codebox]

é este o código favor ajudar

Editado por fercosmig
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...