【问题标题】:Jquery: Short code for multiple clearTimeoutJquery:多个 clearTimeout 的短代码
【发布时间】:2015-11-26 06:39:55
【问题描述】:

我必须清除多个 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...); 我已经尝试过使用逗号分隔,但它不起作用。

【问题讨论】:

  • 该副本上的“已接受答案”让我感到畏缩。
  • @user2864740 是的,之后的答案就是发帖者应该使用的答案
  • 谢谢大家,重复问题的第二个答案帮助了我,以及 zedd 的代码和参考。

标签: javascript jquery settimeout multiple-instances cleartimeout


【解决方案1】:

你把它们放在一个数组中并遍历它们

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

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

【讨论】:

    猜你喜欢
    • 2013-10-29
    • 1970-01-01
    • 2012-11-28
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多