jQuery: la souris est-elle encore sur l'élément?
Je voudrais être en mesure de détecter si la souris est toujours au-dessus de l'élément dans le scénario suivant:
- Si la souris puis dormir pendant quelques secondes.
- Une fois fait dormir contrôle de la souris est toujours sur le même élément.
- Si vrai, alors faire quelque chose.
Comment puis-je obtenir #2?
Merci.
source d'informationauteur thedp
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la hoverIntent plugin pour jQuery. Il vous donne un nouveau gestionnaire d'événement qui se déclenche uniquement si vous avez été planant au-dessus d'un élément pour un certain laps de temps. En peaufinant ses options, vous devriez être en mesure de lui faire faire exactement ce que vous voulez.
Cela semble fonctionner (http://jsbin.com/uvoqe)
Il suffit d'utiliser un indicateur pour vous dire si la souris est au-dessus de lui.
Voici un moyen:
Lorsque vous définissez .hover() sur l'élément, vous pouvez passer 2 fonctions. Le premier se déclenche lorsque la souris est au-dessus de l'élément, le deuxième se déclenche lorsque la souris se déplace.
La première fonction peut définir la
currentElementId
(ou drapeau) et la deuxième fonction claire. De cette façon, la seule chose que vous devez faire est de vérifier sicurrentElementId
est vide.Vous pouvez utiliser
setTimeout( 'sleep', sleep_time )
pour appeler une fonction après un temps défini.Assigner des gestionnaires d'événements onmouseover et onmouseout.
Ces gestionnaires de modifier un indicateur pour vérifier si la souris reste sur l'élément.
À l'intérieur de la fonction de veille, vous pouvez vérifier le drapeau, et juste retour.
J'ai utilisé un lien hypertexte pour afficher une
div
puis surhover
cas je définir le délai d'attente de la propriété de ce et dès que je vais à mondiv
j'ai effacer le délai d'attente et de commencer à utiliser lediv
'shover
fonction de fadeout ladiv
. J'espère que cela va vous aider.