2011-05-31 43 views
1

我想创建一个按钮的JavaScript mousedown事件处理程序。按下按钮时,我需要处理程序重复执行,直到释放按钮(mouseup被触发)。例如。按住向上按钮应该会导致文本框值增加,直到它被释放。执行按钮事件处理程序整个时间鼠标按钮被按下

处理这个问题的最佳方法是什么?

+2

在'mousedown'上开始间隔,清除'mouseup'上的间隔将是一个想法。 – pimvdb 2011-05-31 14:04:42

+0

@ pimvdb很好的答案,你应该让它成为答案而不是评论。 – 2011-05-31 14:05:14

回答

5

您可以使用setIntervalhttp://jsfiddle.net/5wypC/1/

var interval = null; 
var i = 0; 

$('button').mousedown(function() { 
    clearInterval(interval); // Make sure to clear any intervals 
          // that are occasionally still running 
    interval = setInterval(function() { 
     $('textarea').val(i++); 
    }, 100); 
}); 

$('button').mouseup(function() { 
    clearInterval(interval); 
}); 
+0

非常完美,谢谢! – jrummell 2011-05-31 14:12:33