按下按钮时每秒执行一次 javascript 函数



我需要连续执行一个javascript函数(例如每秒或半秒(,但这需要在按下按钮时发生。

我尝试了以下内容:

$("#buttonID").bind('touchstart',function(event){ 
setInterval(function() {
FUNCTION
}, 1000);
});

它也不是那样工作的,使用"鼠标向下"。

鼠标按下时对问题 JavaScript 的回答 没有解决我的问题,所以我不认为这个问题是重复的。

是不是有初学者的错误,我没有看到?你有什么建议?

您必须捕获对计时器的引用,并在释放鼠标时取消它。

var timer = null; // Will hold a reference to the timer
$("#buttonID").on('mousedown',function(event){ 
// Set the timer reference
timer = setInterval(function() {
console.log("Function running");
}, 1000);
});
$("#buttonID").on('mouseup',function(event){ 
clearInterval(timer);  // Cancel the timer
console.log("Timer cancelled.");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="buttonID">Hold me down to run function!</button>

最新更新