Mor*_*ney 0 javascript jquery settimeout setinterval
问题:当我在函数中声明clearInterval()/ setInterval()或clearTimeout()/ setTimeout()时,它什么都不做.我必须重置它的原因是用户可以单击以重置计时器.
我尝试了什么:我想要一个函数每3秒执行一次(因此我使用setInterval()与setTimeout()),并在点击时重置该计时器.我已经尝试使用setTimeout(),在每次执行函数时都使用clearTimeout()和setTimeout().结果:执行一次.
以下代码与setInterval相同.结果:它循环,永不重置.
// Declare variables as global
var varTimerSpeed = 3000;
var varTimerInterval;
varTimerInterval = setInterval("someFunction()", varTimerSpeed);
function someFunction() {
// Reset timer
clearInterval(varTimerInterval);
varTimerInterval = setInterval("someFunction()", varTimerSpeed);
}
// Call the function
$(".class").live("click",function() { someFunction(); });
Run Code Online (Sandbox Code Playgroud)
我在someFunction()中正在执行其他正确执行的事情,因此我知道click的处理程序正在运行.
如果您希望someFunction以一定间隔运行,但在.class单击元素时将其清除并重置,则不要清除内部间隔someFunction.
只需清除并在单击处理程序中重新启动它.
var varTimerSpeed = 3000;
var varTimerInterval = setInterval(someFunction, varTimerSpeed);
function someFunction() {
console.log( "someFunction" );
}
$(".class").live("click",function() {
clearInterval( varTimerInterval );
varTimerInterval = setInterval(someFunction, varTimerSpeed);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4868 次 |
| 最近记录: |