2009-10-28 28 views
19

Estoy tratando de tener una tabla html simple, que resalte una fila mientras el usuario se desplaza sobre ella. Lamentablemente, el elemento hover css no funciona para IE. Eso me deja simularlo en javascript. Puedo usar onmouseenter o onmouseover.Diferencia entre onMouseOver y onMouseEnter

¿Cuál es la diferencia entre ellos, y cuál debo usar?

Respuesta

31

En primer lugar, onmouseenter es específico de IE. No funciona en otros navegadores a menos que use jQuery que puede simulate este evento.

En segundo lugar, tanto onmouseenter y onmouseover fuego cuando el ratón entra en el límite de un elemento. Sin embargo, onmouseenter no se dispara nuevamente (no hace burbujas) si el mouse ingresa un elemento secundario dentro de este primer elemento.

+3

Actualización: Firefox comenzó a apoyar 'onmouseenter' en la versión 10 (enero de 2012) y Chrome Comenzó soportados en versión 30 (octubre de 2013) ([fuente] (https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter)). No pude encontrar información para Safari aparte de [este error de webkit] (https://bugs.webkit.org/show_bug.cgi?id=18930), donde la corrección se confirmó en abril de 2013. Así 'onmouseenter' debería funcionar para la mayoría de los usuarios de los principales navegadores ahora. – ecraig12345

2

A diferencia del evento onmouseover, el evento onmouseenter no burbujea. En otras palabras, el evento onmouseenter no se activa cuando el usuario mueve el puntero del mouse sobre los elementos contenidos por el objeto, mientras que onmouseover dispara.

Siempre uso onmouseover. Uso onmouseover con el mismo propósito (resalta una fila).

0

Es posible ahorrarse algo de código con sólo añadir :hover apoyo a todos los elementos en el IE también:
tratar csshover.htc

+0

css comportamientos son waaaay lento. Se ejecutan cada vez que un hilo deja de ejecutarse. Intente agregar un poco de registro en el js del htc para ver esto. Si solo está intentando crear un efecto de desplazamiento. Usamos: hover que funciona para todos excepto IE6. Muerte a IE6. Creo que esto es aceptable porque los efectos de desplazamiento son simplemente agradables de tener. –