我写了下面这个简单的函数,它接受两个参数,这两个参数主要来自服务器返回的另一个json函数。jQuery:超时/延迟与通知功能?
var timing = 10000;
function notificationOutput(type, message) {
console.log('output now!');
var note = $('.notification');
note.css('display', 'none');
if (type == "success") { note.removeClass('warning').addClass('success'); }
if (type == "warning") { note.removeClass('success').addClass('warning'); }
note.find('.message').html(message);
note.slideDown(function() {
note.delay(timing).slideUp();
});
}
它所做的只是从页面顶部向下滑动一个栏,以显示一条消息(成功或警告)。 timing
变量用于通知栏停留10秒。所以当功能被触发时,我想要栏为slideDown()
,保持该位置10秒,然后再次输入slideUp()
。
但是现在,当功能被触发时,会出现一个奇怪的超时,直到出现通知栏。这意味着当函数被触发时,我现在在那里的输出console.log()
会立即记录在我的JS控制台中,但是slideDown()需要几秒钟才会出现!这是为什么?
我想(如output now
在控制台登录在同一时间)slideDown()
立即发生。为什么会有延迟发生?
感谢您的帮助!
注意:'note.slideDown()。delay(timing).slideUp();'也可以。这里不需要使用完成的回调。 – Yoshi 2012-02-09 09:13:07