Y a-t-il une fonction que je peux appeler pour savoir si un certain élément est actuellement survolé, comme ceci?Comment savoir si une souris survole un élément
/* Returns true or false */
hoveringOver("a#mylink");
Y a-t-il une fonction que je peux appeler pour savoir si un certain élément est actuellement survolé, comme ceci?Comment savoir si une souris survole un élément
/* Returns true or false */
hoveringOver("a#mylink");
Vous pouvez utiliser la méthode hover
de jQuery pour garder la trace:
$(...).hover(
function() { $.data(this, 'hover', true); },
function() { $.data(this, 'hover', false); }
).data('hover', false);
if ($(something).data('hover'))
//Hovered!
Oui, JS classique:
document.getElementById("mylink").onmouseover = function() { alert("Hover!"); }
document.getElementById("mylink").onmouseout = function() { alert("Out!"); }
jQuery:
$('#mylink').mouseover(function() {
alert("Hover!");
});
Je ne sais pas si ce serait la meilleure façon de le faire, mais si vous utilisez jquery , vous pourriez faire quelque chose comme ceci:
var hoveringOver = false;
$("a#myLink").bind("mouseenter", function(){
hoveringOver = true;
});
$("a#myLink").bind("mouseleave", function(){
hoveringOver = false;
});
function isHoveringOver(){
return hoveringOver;
}
Cela ne fonctionnera pas correctement si l'élément a des enfants. Vous devez gérer 'mouseenter' et' mouseleave'. – SLaks
@ SLaks, merci pour la suggestion, je pense que je l'ai réparé! J'ai aussi appris quelque chose de votre réponse à la question, très cool! – Jon
Cela ne fonctionnera toujours pas correctement. Vous ne devriez pas du tout manipuler 'mouseover' et' mouseout'. – SLaks
Cela est préférable si l'élément a des enfants car vous ne souhaitez pas déclencher trop d'événements over/out sur une pile, mais OP n'a pas spécifié JQuery. De plus, il ne fonctionne pas avec des éléments absolument positionnés et empilés les uns sur les autres - pour cela vous avez besoin d'une logique plus sophistiquée. – Plynx
@Plynx: Oui, mais l'approche de jQuery est de loin la plus facile. – SLaks
Cela semble être une bonne solution, mais j'ai du mal à accéder aux données d'autres fonctions. . $ ("Div.menu") vol stationnaire ( \t function() { \t \t .data $ (ce 'vol stationnaire', true); \t \t alerte ($ ("div # menu1") des données (». vol stationnaire ')); // Debug \t}, \t function() { \t \t .data $ (ce 'vol stationnaire', false); \t \t alerte ($ ("div # menu1") des données (. 'hover')); // Déboguer \t} ); L'alerte de débogage fonctionne bien ici, mais si je le fais en dehors de ce bloc de code, cela a tendance à gâcher et à produire 'null'. Une idée pourquoi? – Pieter