2015-07-28 1 views
0

Je dois appeler une fonction qui est déclenchée par un événement mouseenter sur un élément spécifique. Comment puis-je déclencher l'événement mouseenter uniquement si la souris "reste" plus de 5 secondes sur l'élément spécifique?JavaScript - déclencher l'événement mouseenter seulement après un certain temps,

+0

événement différent même problème/solution: [retard de jQuery()] (http://stackoverflow.com/questions/1909441/jquery-keyup-delay) – Andreas

+0

Peut-être cela aide : http://stackoverflow.com/questions/2060601/javascript-cant-stop-the-settimeout – connexo

Répondre

2

Vous pouvez utiliser une minuterie (setTimeout()) pour planifier une fonction après 5 secondes, si la souris part avant cela, nous pouvons effacer la minuterie pour qu'elle ne soit pas invoquée.

var timer; 
 
$('#me').hover(function() { 
 
    timer = setTimeout(function() { 
 
    snippet.log('called after 5000') 
 
    }, 5000); 
 
}, function() { 
 
    //if leaves early then clear the timer 
 
    clearTimeout(timer); 
 
})
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
Some text 
 
<div id="me">hover me for more time</div> 
 
more content

+0

http://jsfiddle.net/arunpjohny/f7bs3x08/ –

+0

Puis-je utiliser mousekeeper à la place? –

+0

@SaritRotshild http://jsfiddle.net/arunpjohny/f7bs3x08/2/ –