2010-09-08 14 views
2

J'ai actuellement deux liens, deux flèches pointant vers le haut et l'autre vers le bas, ce que je veux faire est de faire défiler le contenu situé dans <div id="scroller1"> qui est masqué par <div id="scroller">.Besoin d'exécution continue à l'aide d'un gestionnaire

En d'autres termes:

<div id="scroller"> 
    <div id="scroller1">...</div> 
</div> 

Mon code ressemble à ceci:

$("a.mouseover_up").mousedown(function() { 
var currentMargin = $("#scroller1").css("marginTop"); 
currentMargin = currentMargin.replace("px",""); 

$("#scroller1").animate({"marginTop": (currentMargin - 5) + "px"}); 
return false; 
}); 

Que se passe maintenant, il exécute les animate correctement, mais cesse de défiler après 5px. Je veux qu'il s'anime tant que l'utilisateur maintient le bouton de la souris sur le lien ci-dessus.

Toute aide est appréciée. Merci.

Répondre

1

Je crois que quelque chose comme ça fonctionnerait:

var timeout; 
var clicker = $('#clicker'); 


clicker.mousedown(function(){ 
    timeout = setInterval(function(){ 
     // Go up! 
    }, 500); 

    return false; 
}); 

clicker.mouseup(function(){ 
    clearInterval(timeout); 

    return false; 
}); 

Voir cette démo: http://jsfiddle.net/J9QNZ/2

+0

Merci, qui a travaillé un régal! –