Foros del Web » Programando para Internet » Javascript »

Arbol jerarquizado elegante

Estas en el tema de Arbol jerarquizado elegante en el foro de Javascript en Foros del Web. Wenas foro! Tengo un problema nuevo. Estoy intentando hacer un arbol jerarquizado (hay por aqui una pregunta de eso, pero kreo que google le sera ...
  #1 (permalink)  
Antiguo 02/06/2005, 09:01
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Arbol jerarquizado elegante

Wenas foro!

Tengo un problema nuevo. Estoy intentando hacer un arbol jerarquizado (hay por aqui una pregunta de eso, pero kreo que google le sera suficiente). Lo mio es mas transparente. Como se esta poniendo de moda eso del DOM, queria hacerlo con dom. mas o menos asi:


Código PHP:
<style>
h1 
    
font-size:20px;
    
cursor:hand;
}
blockquote {
    
display:none;
}
</
style>

<
script>

function 
expande(obj) {
    
siguienteBlock=obj.nextSibling;
    
seVe=siguienteBlock.style.display;
    if(
seVe!="block")
        
siguienteBlock.style.display="block";
    else
        
siguienteBlock.style.display="none";
}

</script>

<h1 onclick="expande(this)">Cosas</h1>
    <blockquote>
    Cosa interior 1<br>
    Cosa interior 2<br>
    Cosa interior 3<br>
    Cosa interior 4<br>
    </blockquote>
    
<h1 onclick="expande(this)">Sillas</h1>
    <blockquote>
    Silla 1<br>
    Silla 2<br>
    Silla 3<br>
    <h1 onclick="expande(this)">Sillas de Interior</h1>
        <blockquote>
            Silla Int 1<br>
            Silla Int 2<br>
            Silla Int 3<br>
        </blockquote>
    </blockquote> 

Vale, esto queda muy elegante por la ausencia de codigo farragoso. Pero quiero hacerlo mas elegante. me gustaria que javascript capturase el evento onclick, y que él mismo se percate si estamos sobre un elemento h1 o no, para expandir, ahorrandonos el onclick="expande(this)" en todos los elementos h1.

Se que puedo hacerlo recorriendo todos los h1 asi al final del documento:

Código PHP:
<script>
haches1=document.getElementsByTagName("H1");
for(
a=0;a<haches1.length;a++) {
    
haches1[a].onclick=function expande() {
        
siguienteBlock=this.nextSibling;
        
seVe=siguienteBlock.style.display;
        if(
seVe!="block")
            
siguienteBlock.style.display="block";
        else
            
siguienteBlock.style.display="none";
    };
}
</script> 
Pero tengo esa duda, el cómo detectar que estamos clickeando un h1 en el mismo evento onclick y no otro elemento.

¿Se puede hacer eso? ¿Como?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #2 (permalink)  
Antiguo 02/06/2005, 13:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola derkenuke:

Ahora no tengo mucho tiempo para ver tu código (ahorita mismo salgo pitando a pintar), pero como es un tema que me interesa, te paso un link de cuando propuse un tema parecido: http://www.forosdelweb.com/f13/inspector-dom-174859/
Y ahí mismo puedes encontrar otro enlace a la página resultante: http://www.pepemolina.com/DOM/index.html

Mantennos informados de tus progresos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 19:08.