Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2012, 07:08
Avatar de aniMAYtions
aniMAYtions
 
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 11 meses
Puntos: 2
problema con nodos, clases y javascript

Hola amig@s.
Tengo un menú tipo árbol, con sus ul's, li's, ul's dento de li's y li's dentro de ul's... bueno, ya me entendeis.
Primero inicializo el árbol.
Cuando pincho sobre una de las categorías hago que se abra el submenú correspondiente a ese menú y que se cierren los demás. La clase de ese menú en concreto cambia a categoría abierta y todas las otras a categoría cerrada(por si había anteriormente una abierta).
En este paso, cuando abro el submenú, a las subcategorías(li's dentro de ul) les doy una clase de subcategoría(cambio tamaño de letra e imágen de lista).
El problema está cuando lo que quiero es marcar un submenú seleccionado. No me permite con javascript cambiarle la clase a ese li en concreto!! Y si le doy un color(con style.color='nombrecolor') luego ya no hay quien le cambie el color.

Os pongo un poco de código a ver si os lo aclaro:
Código HTML:
Ver original
  1. <ul id="menuArbol">
  2.                    
  3.                          <li id='msaludos' onClick="javascript:abreArbol(this.id); '><span>Saludos</span>
  4.                             <ul>
  5.                               <li onClick='javascript:seleccionaSubli(this.id)'>Buenos D&iacute;as</li>
  6.                               <li>Buenas Tardes</li>
  7.                               <li>Buenas Noches</li>
  8.                             </ul>
  9.                           </li>
  10. </ul>

Código Javascript:
Ver original
  1. function iniciaMenuArbol()
  2. {
  3.     var menu = document.getElementById('menuArbol');
  4.    
  5.     var subramas = menu.getElementsByTagName('ul');
  6.    
  7.     for(var i=0; i<subramas.length; i++)
  8.     {
  9.         var categoria = subramas[i].parentNode;
  10.         categoria.className='cCerrada';
  11.        
  12.         var idcat = categoria.id;
  13.        
  14.         var subcat = subramas[i].getElementsByTagName('li');
  15.        
  16.         for(var j=0; j<subcat.length; j++)
  17.         {
  18.             subcat[j].id = 's'+idcat+j;
  19.         }
  20.     }
  21.    
  22.    
  23.     escondeMenu();
  24. };

Si necesitais más código, pedidlo.
Gracias por la ayuda!!