2011-05-31 79 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