1
我想創建一個按鈕的JavaScript mousedown事件處理程序。按下按鈕時,我需要處理程序重複執行,直到釋放按鈕(mouseup被觸發)。例如。按住向上按鈕應該會導致文本框值增加,直到它被釋放。執行按鈕事件處理程序整個時間鼠標按鈕被按下
處理這個問題的最佳方法是什麼?
我想創建一個按鈕的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);
});
非常完美,謝謝! – jrummell 2011-05-31 14:12:33
在'mousedown'上開始間隔,清除'mouseup'上的間隔將是一個想法。 – pimvdb 2011-05-31 14:04:42
@ pimvdb很好的答案,你應該讓它成爲答案而不是評論。 – 2011-05-31 14:05:14