0

当我单击关闭按钮时,我正在尝试关闭(淡出)消息框。但在这里它不起作用。帮我解决这个问题。

在它自动关闭之前。如果我单击关闭按钮,消息框应该隐藏。但在这里它不起作用

这是我的Jsfiddle

这是我的脚本;

$('.msg_close_icon_div').click(function(){
    $('.error_msgbox').fadeOut('slow');    
});

$('.error_msgbox').hide().fadeIn('slow').delay(4500).fadeOut('slow');

如果用户没有单击关闭按钮(它在右上角),那么我想在 3 秒后自动关闭消息框。​</p>

4

3 回答 3

0

您还没有在小提琴中选择 jQuery 插件 onload

检查工作小提琴 - http://jsfiddle.net/rxR5E/3/

于 2012-06-06T12:06:28.110 回答
0

您无法手动隐藏 div,因为您使用延迟()阻止了队列。delay() 函数的缺陷在于它不能被取消,这在jQuery 手册中实际上是有提到的。

删除 delay() 和 click() 函数将按预期工作。如果您仍然需要计时事件,我建议使用不同的方法,可能是普通的 setTimeout() 或使用 jQuery (http://api.jquery.com/queue/) 中可用的更合适的 queue() 函数。

您还应该修改当前代码,因为它会产生FOUC

于 2012-06-06T12:20:01.440 回答
0

setTimeout() 将有助于解决这个问题:

这是脚本:

$('.msg_close_icon_div').click(function(){
    $('.error_msgbox').fadeOut('slow');    
}); 


setTimeout(function(){ jQuery(".error_msgbox").hide(); }, 7000);

示例在这里DEMO

更多 setTimeout() 示例

于 2012-06-06T13:21:27.223 回答