Comment détecter mousein et mouseleave en JavaScript?
Je ne peux pas utiliser jQuery pour cette partie du projet pour des raisons diverses. J'ai DONC besoin de le détecter dans vanilla js. J'ai essayé ceci mais ça ne fonctionne pas:
var myDiv = document.getElementById('foo');
myDiv.onmouseenter = function() {
alert('entered');
}
myDiv.onmouseleave = function() {
alert('left');
}
question peut aider à expliquer la différence entre les événements.
OriginalL'auteur TK123 | 2013-03-07
Vous devez vous connecter pour publier un commentaire.
mouseenter
etmouseleave
sont la propriété de MS événements (qui sont en fait assez agréable). SimyDiv
n'a pas d'enfants, à l'aide demouseover
/mouseout
aura exactement le même effet.http://jsfiddle.net/qHfJD/1/
Remarque: cette approche originale de la question et la réponse sont très vieux et à une époque où les
mouseenter
etmouseleave
n'ont pas été bien pris en charge en dehors de l'ei. Tous les navigateurs modernes ont pris en charge ces événements sur les éléments pour un certain temps maintenant. Ils sont généralement préférésmouseover
/mouseout
parce que celui-ci se déclenche pour chaque enfant de l'élément avec l'écouteur d'événement en plus de l'élément lui-même.OriginalL'auteur Explosion Pills
La
mouseenter
etmouseleave
événements sont la propriété de Internet Explorer, si vous n'êtes pas en utilisant IE, ils ne fonctionnent pas. Utilisationmouseover
etmouseout
, à la place.Par la manière, vous pouvez utiliser
mouseenter
etmouseleave
via jQuery parce que jQuery simule ces événements pour vous sur la non-IE navigateurs. Voir cet article pour des conseils sur la manière de simulermouseenter
etmouseleave
pour vous-même.OriginalL'auteur dgvid
OriginalL'auteur ride
Vous sont proches. Le nom de la fonction onmouseover et onmouseout
OriginalL'auteur dremme
Essayer:
var myDiv = document.getElementById('foo');
onmouseenter et onmouseleave sont IE seule fonctionnalité.
OriginalL'auteur dchiang