Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/07/2013, 16:07
yvelisse
 
Fecha de Ingreso: julio-2013
Ubicación: Barcelona
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: problema con variable / bucle for

¡Lo he logrado!
Sí, si coloco un alerta dentro de la función cambiar, lo reconocía, pero es como si las variables dentro de la función estuvieran fuera de su ámbito, cosa que no acabo de entender. Si dentro del alert pongo, por ejemplo, el mensaje (botones[1]) se muestra el texto 'undefined' en la alerta.
En Chrome puse un breakpoint dentro de la función, y al evaluar las variables en la cónsola, devuelve ésto:
botones: MouseEvent
botones[x]:<not avalable>
x: <not avalable>

Pero también me dio una pista que no sabría explicar ahora y se me ocurrió sustituir dentro de la función la referencia botones[x] con this . ¡y funcionó!
Así que la mejoré para que al salir el ratón del elemento elimine la clase sombra. El resultado es éste, por si sirve a alguien:

Código Javascript:
Ver original
  1. function iniciar(){
  2.   var botones, x
  3.   botones=document.querySelectorAll('#barra ul li');
  4.   for(x = 0; x < botones.length; x++){
  5.    botones[x].addEventListener('mouseover',cambiar)
  6.    botones[x].addEventListener('mouseout',volver)
  7.  
  8.  function cambiar(botones){
  9.   this.className='sombra'
  10.     };
  11.   };
  12.  function volver(botones){
  13.   this.className='null'
  14.     };
  15.    };
  16. addEventListener('load', iniciar);

Yve - Muy contenta con el resultado :)

Gracias jluishg por la paciencia.