Javascript jQuery-flashMessage关闭按钮
简短问题:Javascript jQuery-flashMessage关闭按钮,javascript,jquery,flash-message,Javascript,Jquery,Flash Message,简短问题: $(document).ready(function(){ $('.flash-notice .close').click(function(e){ $('.flash-notice').fadeOut(250); e.preventDefault(); }); $('.flash-notice').delay(3000,).fadeOut(1000); 当我点击Flash通知的.close元素时,什么也没发生。3秒钟
$(document).ready(function(){
$('.flash-notice .close').click(function(e){
$('.flash-notice').fadeOut(250);
e.preventDefault();
});
$('.flash-notice').delay(3000,).fadeOut(1000);
当我点击Flash通知的.close元素时,什么也没发生。3秒钟后它就消失了。如果我再次显示它并再次单击.close,它就会工作
我想当盒子已经关上的时候,试图把它关上有点麻烦
我怎样才能解决这个问题
谢谢
$('.flash-notice').delay(3000).fadeOut(1000);
$('.flash-notice .close a').click(function(e){
e.preventDefault();
$('.flash-notice').stop().fadeOut(250);
});
我忘记了stop()jQuery使用特殊效果队列来存储动画和其他效果。每次创建新效果时,它都会放在队列的末尾。在您的情况下,效果将按以下顺序添加到队列中:
.delay(3000)
.fadeOut(1000)
.fadeOut(250)
.fadeOut(250)
方法仅在前两个之后执行。问题的解决方案是在调用.fadeOut(250)
之前清除效果队列。以下工作:
$('.flash-notice .close').click(function(e){
$('.flash-notice').stop().clearQueue().fadeOut(250);
e.preventDefault();
});
$('.flash-notice').delay(3000).fadeOut(1000);
.stop()
终止当前运行的效果(.delay(3000)
),.clearQueue()
从队列中删除所有尚未开始的效果。.delay(3000)
如果没有该,
顺便说一句,您是在文档准备就绪时执行此操作的-->$('.flash notice')。delay(3000),.fadeOut(1000)代码>点击时不显示?我的目标是,在页面加载时显示一个弹出窗口,如果有人点击按钮,则在3秒后或更早时间将其淡出