2012-01-16 2 views
0

У меня проблема с кодом jQuery. На моем сайте есть всплывающая панель, содержащая форму. Когда я нажимаю «Отправить» в моей форме, мои данные отправляются на мой адрес электронной почты и базу данных (по запросу). Однако, как только это было представлено, я хочу:jQuery delay issue

  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); 
}); 

Кто-нибудь знает а) почему? или б) если есть лучший способ достижения этого эффекта?

+0

Следует отметить, что до того, как я добавил '.delay', мое подтверждение появилось. Все после задержки было запоздалой мыслью. –

ответ

1

show и hide не являются анимациями, когда им не дается продолжительность. delay влияет на очередь анимации. Поскольку show и hide не находятся в очереди анимации, delay не задерживает hide, в результате чего он сразу же скрывается.

Вы можете либо дать hide длительность (даже 1 будет делать, что делает его почти мгновенно, но поместить его в очередь анимации теперь затронуты delay) или вам нужно будет использовать setTimeout или какой-либо другой анимации, как fadeOut.

+0

Спасибо! Я не знал, что должны быть длительности (я ноб, я знаю, я узнаю), но сейчас у меня это работает. Спасибо. –