首先,setTimeout()和clearTimeout()是纯JavaScript函数,但通常在JavaScript动画和jQuery库中使用。 有时,当您设置了超时时,您可能想要取消它们,为此,您需要将settimeout存储在变量中。
循环setTimeouts
在此循环内,超时始终将是相同的值:例如:TIMEOUT = 1773
for(i=0; i<10; i++)
{
newTimeout = setTimeout(function()
{
console.log('TIMEOUT='+newTimeout);
});
}
如果我们稍微调整一下并抛出setInterval来控制其工作时间。
i = 0;
var interval = setInterval(function()
{
newTimeout = setTimeout(function()
{
console.log(this);
console.log('TIMEOUT='+newTimeout);
}, 100);
i++;
if (i > 10)
{
clearInterval(interval);
}
}, 200);
输出:
在这里我们可以清楚地看到超时被分配了一个整数值。 这样我们便可以使用以下方法清除它们:
清除所有setTimeouts
for(i=0; i<100; i++)
{
window.clearTimeout(i);
}
进一步阅读
我想知道是否可以使用jQuery将超时存储为数据?
那么,如果使用setTimeout将动画排入队列,则该动画是否正在动画中甚至在开始动画制作之前就可以停止播放? 嗯...
if (animateWidget !== undefined)
{
//only do 10 windows
for(i=0; i<10; i++)
{
window.clearTimeout(i);
}
//stop all animations on windows
$('.containerPlus').stop();
}
var animateWidget = setTimeout(function()
{
console.log('TIMEOUT: '+animateWidget);
EVI.FLEXIDASH.tileDash();
}, 300);