2014-01-24 53 views
0

我有一個網頁,它允許用戶更改設置中的窗體褪色股利。這些事件觸發JQuery中的AJAX提交,並且來自我的Web應用程序服務器的響應幾乎是即時的。到目前爲止,我還沒有向用戶反饋過任何改變。展和速度非常快的事件

如果我添加微調框,它只是閃爍的屏幕瞬間這使得它看起來像一個小故障或缺陷上。

我想添加與保存在字格,然後褪色它,停頓2秒,然後最終刪除之前淡出div中出。

我jQuery是這樣的:

$("#ControlInfoForm").change(function() { 
    $.ajax({ 
     type: 'post', 
     url: 'control.cfc?method=change', 
     data: $("#ControlInfoForm").serializeArray(), 
     dataType: "json", 
     beforeSend: function (result) { 

     }, 
     success: function (result) { 
      $('#AJAX-saved').fadeIn("fast"); 
      // How do I pause here for 2 seconds? 
      $('#AJAX-saved').fadeOut("slow"); 
     }, 
     error: function (result) { 
      alert("An error has occured."); 
     } 
    }); 
}); 

如何暫停兩秒鐘淡出?我是在正確的地方做的嗎?

+1

後執行,您必須把淡入呼叫在beforeSend回調,有沒有在ajax調用完成後指向微調器中的淡出。 – adeneo

+0

你應該谷歌jQuery的延遲動畫下次 –

+0

一點題外話,暫停動畫只是爲了顯示你的冷靜微調是壞UX,爲什麼用戶想要看一個微調兩秒鐘,而不是結果,他在等待。 – adeneo

回答

2
  1. fadeIn
  2. 回調函數調用fadeOut使用.delay(),它設置一個計時器延遲隊列中的後續項目的執行。

代碼

$('#AJAX-saved').fadeIn("fast", function() { 
    $('#AJAX-saved').delay(2000).fadeOut("slow"); 
}); 
1

你可以試試這個:

success: function (result) { 
      $('#AJAX-saved').fadeIn("fast"); 
      setTimeout(function(){$('#AJAX-saved').fadeOut("slow");},2000); 

     } 

fadeout將2秒

+0

非常好。會投票作爲答案,但我使用了Satpal的解決方案,因爲我首先看到了。感謝您的幫助朋友 –

相關問題