Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » JavaScript » Menú desplegable: al clicar un botón también hace clic a sus Responder al tema
Nuevo tema


Página 1 de 1  [ 1 mensaje ] 
 
Nota 2011-09-22 11:36 @525

Perlero Nuevo
Registrado: 2011-09-12 17:49 @784
Mensajes: 3
Menú desplegable: al clicar un botón también hace clic a sus
He creado un sencillo menú desplegable con listas anidadas. La idea es que al hacer onClick en un elemento de lista, me llame a una función que averiguará el id del elemento de la lista sobre el que se ha hecho clic.

El problema es que si hago clic en un elemento de lista anidada, me muestra el id de éste pero también el de sus ancestros.

¿Alguna solución?

Gracias.

HTML
Syntax: [ Download ] [ Hide ]
Using html4strict Syntax Highlighting
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  2. "http://www.w3.org/TR/html4/strict.dtd">
  3.  
  4. <html>
  5.     <head>
  6.         <title></title>
  7.        
  8.         <link rel="stylesheet" href="estilo.css" type="text/css" media="screen"></link>
  9.         <script type="text/javascript" src="biblioteca.js"></script>
  10.  
  11.     </head>
  12.    
  13.     <body>
  14.        
  15.          <ul id="menu">
  16.                   <li id="boton_Ordenadores" >ORDENADORES
  17.                         <ul id=sub_Ordenadores>
  18.                             <li id="boton_Sobremesas">sobremesas</li>
  19.                             <li id="boton_Portatiles">portatiles</li>
  20.                         </ul>
  21.                     </li>
  22.                     <li id="boton_Tablets">TABLETS</li>
  23.                        
  24.                     <li id="boton_Componentes" >COMPONENTES
  25.                         <ul id=sub_Componentes>
  26.                             <li id="boton_Procesadores">procesadores
  27.                                 <ul id=sub_Procesadores>
  28.                                     <li id="boton_Intel">intel</li>
  29.                                     <li id="boton_Amd">amd</li>
  30.                                     <li id="boton_Ibm">ibm</li>
  31.                                 </ul>
  32.                             </li>
  33.                             <li id="boton_Placas">placas base</li>
  34.                             <li id="boton_Discos">discos duros</li>
  35.                             <li id="boton_Fuentes">fuentes</li>
  36.                         </ul>
  37.                     </li>
  38.                 </ul>
  39.     </body>
  40. </html>
  41.  


JS
Syntax: [ Download ] [ Hide ]
Using javascript Syntax Highlighting
  1. var descens = new Array();
  2. var numdescens;
  3. var idclic;
  4.  
  5. function ObtenDescens(idpadre,tagdescen)
  6. {  
  7.    
  8.  
  9.     descens=document.getElementById(idpadre).getElementsByTagName(tagdescen);
  10.      
  11.     numdescens=descens.length;
  12.    
  13. //alert("num descendientes "+tagdescen+": " + numdescens);
  14.  
  15.    
  16.            
  17.        
  18. }
  19.  
  20. function replegar()
  21. {                                                                              
  22.                                                                                
  23.    ObtenDescens(this.id,"ul")
  24.  
  25.  
  26.      document.getElementById(descens[0].id).style.display='none'
  27.    
  28. }
  29. function desplegar()
  30. {                                                                              
  31.                                                                              
  32.    ObtenDescens(this.id ,"ul")
  33.    
  34.    
  35.     document.getElementById(descens[0].id).style.display="block";
  36.    
  37.    
  38.    
  39. }
  40.  
  41. function quienclic()
  42. {                                                                              
  43.                                                                              
  44.     idclic=this.id
  45.     alert(idclic)
  46. }
  47.  
  48.  
  49.  
  50. window.onload = function()
  51. {
  52.      
  53.    
  54.    
  55.  
  56.      ObtenDescens("menu","li");
  57.      
  58.      for(i=0;i<numdescens;i++)
  59.                 {
  60.                     document.getElementById(descens[i].id).onmouseover = desplegar;
  61.                     document.getElementById(descens[i].id).onmouseout = replegar;
  62.                    
  63.                    document.getElementById(descens[i].id).onclick = quienclic;
  64.                    
  65.                 }
  66.        
  67.      
  68.    
  69.     ObtenDescens("menu","ul");
  70.    
  71.     for(i=0;i<numdescens;i++)
  72.                 {
  73.                     document.getElementById(descens[i].id).style.display="none";
  74.                 }
  75.      
  76.    
  77. }


Responder al tema  [ 1 mensaje ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO