jQuery延迟函数中断

我在jQuery中有一个淡入淡出的弹出窗口,如果没有被用户解雇,它将在10秒内淡出。

我有代码:

$modalElement.fadeIn(1000).delay(10000).fadeOut(1000); 

这适用于淡入,延迟和淡出 – 但是表单上的'close'按钮在超时后才起作用!

我需要'close'按钮来中断delay ,这样用户就可以读取弹出并自己关闭,比如5秒钟 – 然后如果他们自己没有关闭它,那么它会在10秒后自动关闭延迟。

任何想法如何做到这一点?

您可以使用.clearQueue()方法。

在您的关闭处理程序中,您可以这样做:

 $modalEleement.clearQueue(); 

默认情况下, .delay().clearQueue()fx队列上运行,但您可以传递自定义队列名称。

只需在关闭按钮上添加一个带有出队的点击事件。

例如:

 $modalElement.fadeIn(1000).delay(10000).fadeOut(1000); $modalElement.find('a.close').click(function(){ // If you want fadeout being triggerd $modalElement.dequeue() // If you just want to delete the box without the fadeOut $modalElement.remove() });