Foros del Web » Programando para Internet » Javascript »

menu activo con javascript

Estas en el tema de menu activo con javascript en el foro de Javascript en Foros del Web. Hola. Suelo utilizar una función muy sencilla para detectar la página actual y así empujar una clase css. El tema es que he cambiado de ...
  #1 (permalink)  
Antiguo 16/06/2011, 10:51
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
menu activo con javascript

Hola. Suelo utilizar una función muy sencilla para detectar la página actual y así empujar una clase css. El tema es que he cambiado de css y en lugar de li/ul trabajo con este html actual y mi función no reconoce la selección..upff pongo el ejemplo y a ver si queda más claro. gracias.

mi javascript

Código Javascript:
Ver original
  1. function setActive() {
  2.   aObj = document.getElementById('menu').getElementsByTagName('a');
  3.   for(i=0;i<aObj.length;i++) {
  4.     if(document.location.href.indexOf(aObj[i].href)>=0) {
  5.       aObj[i].className='active';
  6.     }
  7.   }
  8. }
  9. window.onload = setActive;

mi html

Código HTML:
Ver original
  1. <div id="menu">
  2.     <NAV>
  3. <A
  4. id=nav_home href="inicio.htm"><SPAN>Inicio</SPAN></A>
  5.  
  6. <A id=nav_barra><SPAN></SPAN></A>
  7. <A
  8. id=nav_trabajos href="trabajos.htm"><SPAN>trabajos</SPAN></A>
  9. <A id=nav_barra><SPAN></SPAN></A>
  10.  
  11. </div>

mi css

Código CSS:
Ver original
  1. #nav_inicio .active a { background: url(nav.png) -8px 0; }
  2. #nav_trabajos .active a { background: url(nav.png) -8px 0; }
  #2 (permalink)  
Antiguo 16/06/2011, 11:43
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: menu activo con javascript

buenas,
el problema es que el CSS esta mal. fijate lo que dicen los selectores. "aplicar propiedades a elemento <a> que estan dentro de un elemento con clase .active y a su vez dentro de un elemento con id #nav_trabajos". es decir, las propiedades serian aplicada a un elemento <a> como en el ejemplo que sigue. notese el texto marcado en color rojo son donde los selectores coinciden.
Código:
<ul id="nav_trabajos">
<li class="active"><a href='...'>enlace</a></li>
<li><a href='...'>enlace</a></li>
</ul>
tu estructura html es distinta y por eso no se aplica las propiedades css. si vas a usar esa estructura, debes reescribir los selectores acorde a dicha estructura. por ejemplo, los enlaces ya tienen un id, puedes partir desde ahi.
Código:
/* notese que no hay espacio entre el id y la clase */
#nav_trabajos.active, #nav_inicio.active{
/* propiedades css */
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 17/06/2011, 10:07
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
De acuerdo Respuesta: menu activo con javascript

Correctísimo Killer! gracias
  #4 (permalink)  
Antiguo 17/06/2011, 10:08
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
De acuerdo Respuesta: menu activo con javascript

Correctísimo zerokilled! gracias

Etiquetas: Ninguno
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 12:55.