Comment vérifier si le curseur est sur un élément?
Comment puis-je vérifier si le curseur est sur un div
sur la page html avec JQuery/Javascript?
Je vais essayer d'obtenir les coordonnées du curseur pour voir si elles sont dans le rectangle de mon élément. Peut-être il ya des méthodes prédéfinies?
UPD, ne dites rien à propos de hover
événements, etc. J'ai besoin d'une méthode qui retourne true/false pour certaines élément à la page, comme:
var result = underElement('#someDiv'); //true/false
- Indépendamment de ce que vous voulez à la tête,
hover
est la croix-navigateur option ici,mouseover
oumouseenter
est le plus facile de la croix-navigateur de façon à garder une trace de la planait élément. Aussi votre phrasé est un peu de, la souris n'est jamais en vertu d'un élément, c'est fini, c'. - si vous n'utilisez pas de hover, comment saurez-vous que la souris à l'entrée de cette zone de la vôtre?...
- regardez les coordonnées de la souris et de regarder div position.
- j'ai contribué à un pseudo-expression pour elle en espérant que cela aide quelqu'un si
- La vérification des coordonnées du curseur peut être nécessaire. Par exemple, si vous ajoutez un élément placé sous le curseur, la
mouseover
/mouseenter
événement ne se déclenche pas sur l'élément jusqu'à ce que l'utilisateur déplace la souris.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas vraiment sûr de savoir pourquoi vous souhaitez éviter de planer mal: considérons le script suivant
L'idée de base est que vous utilisez passez la souris pour définir un indicateur sur l'élément que la souris est sur il n'est plus sur elle. Et puis vous écrire une fonction qui vérifie la présence de ce drapeau.
return $(selector).data('hover');
à la fin si?*
sélecteur est déjà connu pour être lent, lancement de beaucoup d'auditeurs peuvent faire pire.Par souci d'exhaustivité, je vais ajouter quelques modifications qui, je crois, va aider un peu pour la performance.
Utiliser la délégation de lier l'événement à un élément, au lieu de se lier à tous les éléments existants.
Ajouter un jQuery pseudo-expression
:hovering
.Utilisation:
La façon la plus simple serait probablement juste de la piste de l'élément dont la souris est au-dessus à tout moment. Essayez quelque chose comme:
et puis, votre fonction est simplement
Ne pouvez pas vous suffit de cocher $(sélectionner).is(':hover') ?
.is(':hover')
: stackoverflow.com/a/12517725/5295.Je l'ai fait avec une fonction personnalisée: