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() });