0

laissez-moi vous expliquer mon problème. J'ai un événement mouseout assigné à une balise div avec un identifiant de calendrier. Maintenant, quand ce gestionnaire est appelé (lorsque la souris n'est pas au-dessus de la div de calendrier), je veux attendre 2 secondes, puis voir si la souris n'est toujours pas au-dessus de la division du calendrier. Si la souris est toujours hors fonction, alors faites une fonction, sinon ne faites rien. J'utilise le prototype de bibliothèque javascript.Javascript: Event Listener mouseout

Mon code est le suivant:

$('calendar').observe('mouseout', function (event){ 
    setTimeout(/* call this event again */, 2000); 
} 

Merci

Répondre

2
$('calendar').observe('mouseout', function(e) { 
    myTimeout = setTimeout(function() { /* stuff to do after 2 secs */, 2000); 
}); 

$('calendar').observe('mouseover', function(e) { 
    if(myTimeout) window.clearTimeout(myTimeout); 
}); 
+0

où vous avez/* des choses à faire au bout de 2 secondes */c'est là que je veux voir si la souris est encore sur la div calendrier ou pas. C'est ce que je ne sais pas sur – phpNutt

+0

Oui, eh bien, si vous jetez un coup d'œil sur les choses dans 'mouseover' ci-dessous, cela annule le timer quand l'élément est encore mouseover'ed, donc cela signifie, si ce code s'exécute définition qu'il n'a pas été mouseovered en 2 secondes, donc ce que vous voulez faire, est sûr de le faire –

+0

Cela devrait fonctionner tant que vous vous assurez de déclarer la variable myTimeout en dehors de la portée de ces deux fonctions. –