Je cherche un moyen de répéter une action mouseover jusqu'à ce que l'utilisateur s'éloigne de la cible. Un mouseover invoque une fonction une fois, je cherche un moyen de continuer à faire la fonction.Continu mouseover
Cheers, Gazler.
Je cherche un moyen de répéter une action mouseover jusqu'à ce que l'utilisateur s'éloigne de la cible. Un mouseover invoque une fonction une fois, je cherche un moyen de continuer à faire la fonction.Continu mouseover
Cheers, Gazler.
Vous aurez besoin d'utiliser setInterval()
:
var to;
var doStuff = function() {
console.log('doing stuff...');
};
$('a').hover(function(e) {
to = window.setInterval(doStuff, 1);
},function(e) {
window.clearInterval(to);
})
//continuous
var timer;
var doStuff=function(quit){
console.log('doing stuff');
if (quit!==true){
timer=setTimeout(doStuff, 100);
}
else{
clearTimeout(timer);
}
};
$('div#continuous').bind('mouseenter', doStuff).bind('mouseleave', function(){doStuff(true);});
parfait, applaudissements. – Gazler
Vous utilisez une seule variable de temporisation pour toutes les balises d'ancrage - cela fonctionne la plupart du temps, mais cela peut ne pas fonctionner comme prévu lorsque vous avez des balises d'ancrage imbriquées - en raison de la création d'un intervalle de deux (ou plus) pour chaque élément imbriqué. vous ne pourrez cependant effacer que l'un d'entre eux. –
@dionadar: Les ancres imbriquées sont illégales: http://www.w3.org/TR/html401/struct/links.html#h-12.2.2 – David