jQuery延迟问题

时间:2012-01-16 21:50:44

标签: jquery submit toggle delay fade

我的jQuery代码存在问题。我的网站中有一个包含表单的弹出式面板。当我在表单上单击“提交”时,我的数据将提交到我的电子邮件和数据库(根据要求)。但是,一旦提交,我想:

  1. 我的表单<div>隐藏。
  2. 我的确认<div>以显示。
  3. 发生延迟2秒。
  4. 我的整个表格面板淡出。
  5. 我的确认<div>和我的表单<div>恢复正常(包括重置表单,我不知道该怎么做,所以在这方面的任何帮助也会感激不尽)
  6. 注意:我想要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)是否有更好的方法来实现这种效果?

1 个答案:

答案 0 :(得分:1)

showhide在没有持续时间时不是动画。 delay会影响动画队列。由于showhide未放置在动画队列中,delay不会延迟hide,导致其立即隐藏。

你可以给hide一个持续时间(即使1会使它几乎是即时的,但是把它放在动画队列上现在受到delay的影响)或者你需要使用{{ 1}}或其他动画,例如setTimeout