Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/08/2011, 07:01
Avatar de Raziel_Ravenheart
Raziel_Ravenheart
 
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 13 años, 4 meses
Puntos: 37
Exclamación Respuesta: Evento onblur no me funciona en chrome

Cita:
Iniciado por TEPO Ver Mensaje
Hola a todos, estoy con un pequeño problema, estoy utilizando los eventos onclick y onblur en un menu sencillo, para que cuando aprete un boton quede pintado con el onclick y cuando apriete otro el que estaba pintado se despinte con el onblur, me funciona en firefox, en explorer pero vaya sorpresa la mia, no funciona el onblur en google chrome, alguien podria ayudarme? paso el codigo.
Muchas Gracias.

Código:
<div id="menu">
     <ul id="navMenu">
         <li>
                <a href="home.html" onclick="javascript:this.style.color='#1438EF';" 
                onblur="javascript:this.style.color='#000000';">Home</a>
         </li>
         <li>
               <ahref="contacto.html"onclick="javascript:this.style.color='#1438EF';" 
                onblur="javascript:this.style.color='#000000';">Contacto</a>
         </li>
     </ul>
</div>
Estuve leyendo por ahí y ps como está en ingles, es decir aquí:

http://stackoverflow.com/questions/2407679/onblur-event-not-working-with-google-chrome

y junto con lo que leí aquí:

http://www.quirksmode.org/dom/events/blurfocus.html

Dice lo siguiente, resumido y unido:

Google chrome no considera ciertos elementos "enfocables" (focusables), y tampoco activa el evento en ciertos elementos cuando el usuario hace click con el mouse, solo con el teclado. Para darle la característica de enfocable utiliza el atributo "tabindex", el código lo corregí, así y ya me funciona:

Código HTML:
Ver original
  1. <div id="menu">
  2.      <ul id="navMenu">
  3.          <li>
  4.                 <a href="#" onclick="this.style.color='#1438EF';"
  5.                onBlur="this.style.color='#000000';" tabindex="0">Home</a>
  6.          </li>
  7.          <li>
  8.                <a href="#" onclick="this.style.color='#1438EF';"
  9.                onBlur="this.style.color='#000000';" tabindex="0">Contacto</a>
  10.          </li>
  11.      </ul>
  12. </div>

Cabe mencionar que, si un objeto no es considerado "enfocable", por lo tanto no puede considerarse "borroso" si no está escogido y por lo tanto, no va a desencadenar el evento "onblur"

Última edición por Raziel_Ravenheart; 31/08/2011 a las 07:04 Razón: Explicar por que no desencadena el evento onblur