我寫了下面這個簡單的函數,它接受兩個參數,這兩個參數主要來自服務器返回的另一個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