我在jQuery中有一个淡入淡出的弹出窗口,如果没有被用户解雇,它将在10秒内淡出。
我有代码:
$modalElement.fadeIn(1000).delay(10000).fadeOut(1000);
这适用于淡入,延迟和淡出 - 但表单上的'close'
按钮在超时后才起作用!
我需要'close'
按钮来中断delay
,以便用户可以阅读弹出窗口并自行关闭它,比如说,5秒钟 - 然后如果他们自己没有关闭它,然后它将在10秒延迟后自动关闭。
任何想法如何做到这一点?
答案 0 :(得分:7)
您可以使用.clearQueue()
方法。
在关闭处理程序中,您可以执行以下操作:
$modalEleement.clearQueue();
默认情况下,.delay()
和.clearQueue()
都在fx
队列上运行,但您可以传递自定义队列名称。
答案 1 :(得分:0)
只需在关闭按钮上添加一个带队列的点击事件。
例如:
$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()
});