执行按钮事件处理程序整个时间鼠标按钮被按下
问题描述:
我想创建一个按钮的JavaScript mousedown事件处理程序。按下按钮时,我需要处理程序重复执行,直到释放按钮(mouseup被触发)。例如。按住向上按钮应该会导致文本框值增加,直到它被释放。执行按钮事件处理程序整个时间鼠标按钮被按下
处理这个问题的最佳方法是什么?
答
您可以使用setInterval
:http://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
在'mousedown'上开始间隔,清除'mouseup'上的间隔将是一个想法。 – pimvdb 2011-05-31 14:04:42
@ pimvdb很好的答案,你应该让它成为答案而不是评论。 – 2011-05-31 14:05:14