2

我必须清除多个 setTimeout 函数

$('#stop').click(function(){
    clearTimeout(anim1);
    clearTimeout(anim2);
    clearTimeout(anim3);
    clearTimeout(anim4);
    clearTimeout(anim5);
    clearTimeout(anim6);
    clearTimeout(anim7);
    clearTimeout(anim8);
    clearTimeout(anim9);
    clearTimeout(anim10);
});

有什么办法可以缩短这段代码,就像clearTimeout(anim1,anim2,anim3...);我已经尝试过使用昏迷分离但它不起作用那样。

4

1 回答 1

2

你把它们放在一个数组中并迭代它们

var timers = [anim1, anim2, anim3, anim4] //can also be added when created
for (var t=0;t<timers.length;t++) {
   clearTimeout(timers[t]);
}

通常,当您需要对许多或未知数量的对象执行相同的操作时,您应该将它们放在一个数组中或将它们构造在一个对象中,您可以在其中以编程方式处理“所有”项目。这是索引集合的综合指南

于 2015-09-01T06:10:37.770 回答