2012-01-16 152 views
0

我有我的jQuery代碼的問題。我的網站上有一個彈出式面板,其中包含一個表單。當我點擊我的表單上的提交時,我的數據被提交給我的電子郵件和數據庫(按要求)。但是,一旦提交,我想:jQuery延遲問題

  1. 我的表格<div>隱藏。
  2. 我的確認<div>要顯示。
  3. 延遲2秒發生。
  4. 我的整個表單面板都會淡出。
  5. 我確認<div>和我的形式<div>恢復到正常(包括重置形式,我不知道該怎麼辦,所以在這一方面的任何幫助,也將不勝感激)

注:我想5.發生,以便在需要時發送第二封電子郵件。我可以沒有這種生活,但至少可以達到4。

當我提交我的表單時,我的數據按需處理,但我的面板作爲整體隱藏,沒有發生<div>轉換,所以我沒有看到我的確認消息。我的代碼目前設置爲:

$.post('/includes/hireme.php', $("#formHireMe").serialize(), function(data) { 
    $('div#hiremeFormPane').hide(); 
    $('div#hiremeSubmittedPane').show().delay(5000).hide(); 
    $('div#hiremeFormPane').show(); 
    $('div#hiremePanel').fadeOut(150); 
}); 

有沒有人知道a)爲什麼?或者b)是否有更好的方法來達到這種效果?

+0

我應該注意到,在我添加'.delay'之前,我的確認消息確實顯示。延遲後的一切都是事後纔想到的。 – 2012-01-16 21:51:50

回答

1

showhide當它們沒有給定持續時間時不是動畫。 delay影響動畫隊列。由於showhide未放置在動畫隊列中,因此delay不會延遲hide,導致它立即隱藏。

您可以給hide的持續時間(甚至1也是這樣,幾乎瞬間,而是將其放在動畫隊列現在delay影響),或者你需要使用setTimeout或一些其他類似的動畫fadeOut

+0

謝謝!我沒有意識到必須有持續時間(我是一個noob,我知道,我會學習),但我現在就開始工作了。謝謝。 – 2012-01-16 22:06:49