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,
Répondre
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
http://jsfiddle.net/arunpjohny/f7bs3x08/ –
Puis-je utiliser mousekeeper à la place? –
@SaritRotshild http://jsfiddle.net/arunpjohny/f7bs3x08/2/ –
événement différent même problème/solution: [retard de jQuery()] (http://stackoverflow.com/questions/1909441/jquery-keyup-delay) – Andreas
Peut-être cela aide : http://stackoverflow.com/questions/2060601/javascript-cant-stop-the-settimeout – connexo