2012-01-16 153 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