如何清除正在进行的所有JQuery

How to clear all JQuery in progress

本文关键字:JQuery 正在进行 何清除 清除      更新时间:2023-09-26

我编写了一个JQuery程序,只需按下一个按钮,就可以运行十几个setTimeout以及一些动画。该程序对现有的div进行操作,更改它们的HTML(使用id选择器),淡入淡出等

整个过程可能需要长达15秒的时间。问题是,如果在该时间范围内再次按下按钮,则淡入和淡出开始堆积在一起,看起来很奇怪。

有没有什么东西可以让我使用,如果再次按下按钮,那么所有正在进行的JQuery内容都会停止并被清除?我尝试过使用clearTimeout,但似乎不起作用。

您可以使用.stop().clearQueue()

当调用.clearQueue()方法时,队列中所有尚未执行的函数都将从队列中删除。当在没有参数的情况下使用时,.clearQueue()会从标准效果队列fx中删除剩余的函数。在这种方式下,它类似于.stop(true)。但是,虽然.stop()方法仅用于动画,但.clearQueue[()]也可以用于删除已通过.queue()方法添加到通用jQuery队列中的任何函数

您还可以阻止按钮执行任何操作,直到计时器结束。您可以放置一个布尔变量,在第一次单击后获取false的值,当计时器结束时,将该变量转回true,并在每次单击按钮时检查它。