setTimeout能执行多个吗?

比如:

    setTimeout(function(){
            $('.abc').removeClass('a');
        },5000);
    setTimeout(function(){
            $('.abc').removeClass('b');
        },3000);
        

需求是这样的,在第一个setTimeout还未执行的时候第二个setTimeout就开始执行的话,第一个setTimeout会不会被覆盖?如果会,有别的方法吗?谢谢!

阅读 7.6k
5 个回答

不存在覆盖的情况。一般情况执行顺序首先是按 定时器给的时间参数 来排,若时间一样则按 代码语句的先后顺序 排。

不会覆盖,他们是两个匿名的异步执行,并且各自有各自的作用域

3秒后运行

removeClass('b')

再等两秒后

removeClass('a')

相关问题涉及到异步

兄弟你这两个超时调用首先时间参数就不一样,所以不存在覆盖问题,其次js的事件模块是异步的,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题