2009-10-28 4 views
19

J'essaie d'avoir une table html simple, qui met en évidence une ligne en tant qu'utilisateur souris sur elle. Malheureusement, l'élément CSS Hover ne fonctionne pas pour IE. Cela me laisse à le simuler en javascript. Je peux utiliser soit onmouseenter ou onmouseover.Différence entre onMouseOver et onMouseEnter

Quelle est la différence entre eux, et lequel dois-je utiliser?

Répondre

31

Tout d'abord, onmouseenter est spécifique à IE. Ne fonctionne pas dans d'autres navigateurs sauf si vous utilisez jQuery qui peut simulate cet événement.

Deuxièmement, à la fois onmouseenter et onmouseover feu lorsque la souris entre dans la limite d'un élément. Cependant, onmouseenter ne se déclenche pas à nouveau (ne fait pas de bulles) si la souris entre dans un élément enfant à l'intérieur de ce premier élément.

+3

Mise à jour: Firefox a commencé à soutenir 'onmouseenter' dans la version 10 (Janvier 2012) et Chrome a commencé soutenu dans version 30 (octobre 2013) ([source] (https://developer.mozilla.org/fr-fr/docs/Web/Events/mouseenter)). Je n'ai pas pu trouver d'informations pour Safari autres que [ce bug du Webkit] (https://bugs.webkit.org/show_bug.cgi?id=18930), où le correctif a été validé en avril 2013. Donc 'onmouseenter' devrait fonctionner pour la plupart des utilisateurs des principaux navigateurs maintenant. – ecraig12345

2

Contrairement à l'événement onmouseover, l'événement onmouseenter ne fait pas de bulles. En d'autres termes, l'événement onmouseenter ne se déclenche pas lorsque l'utilisateur déplace le pointeur de la souris sur les éléments contenus dans l'objet, alors que le paramètre onmouseover est activé.

J'utilise toujours onmouseover. J'utilise onmouseover dans le même but (met en évidence une rangée).

0

Vous pourriez vous épargner un certain codage en ajoutant simplement :hover support pour tous les éléments IE aussi:
essayer csshover.htc

+0

Les comportements css sont trop lents. Ils s'exécutent chaque fois qu'un thread s'arrête d'être exécuté. Essayez d'ajouter une connexion dans le js de la htc pour voir cela. Si vous voulez juste créer un effet de survol. Nous utilisons: hover qui fonctionne pour tout le monde sauf IE6. Mort à IE6. Je pense que c'est acceptable parce que les effets de hover sont tout simplement agréables à avoir. –