所以我现在有这个:
$('#message_notice').click(function(){
$(this).fadeOut('slow');
});
$('#message_notice').delay(8000).fadeOut('slow');
我最终要做的就是点击一条消息,然后继续淡出。否则,在X秒内,自动淡出。
我可以做其中一个,但是如果我有两个(如我的例子中所示)那么点击不起作用(只是延迟的淡入淡出)。
我正在使用jQuery 1.4.4。
答案 0 :(得分:5)
您需要在点击处理程序中调用.stop(true)
以取消您放入队列的delay()
。
新代码应该看起来像
$('#message_notice').click(function(){
$(this).stop(true).fadeOut('slow');
});
$('#message_notice').delay(8000).fadeOut('slow');
答案 1 :(得分:2)
那是因为你跑步时
$('#message_notice').delay(8000).fadeOut('slow');
您正在创建一个
的动画队列$('#message_notice').fadeOut('slow');
如果有人点击,会被追加。
对于一个解决方案,请参阅SLaks的回答,他们发布的速度比我写完的速度快......