私は次の単純な関数を書いています。この関数は、主にサーバーからjsonで返された別の関数からの2つのパラメータをとります。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()
をすぐに実行します。なぜ遅延が起きていますか?
ありがとうございました!
side note: 'note.slideDown()。delay(timing).slideUp();'も動作します。ここで終了コールバックを使用する必要はありません。 – Yoshi