Собственно проблема. Форма отправляется по ajax. Желательно все плавно скрыть и показать анимацию ajax загрузка. Когда придут данные проделать все в обратном порядке. Делал вот так:
function formgears(formid)
{
$(formid).ajaxSubmit({
beforeSubmit: function(){
$('#ajaxcontent').fadeOut(500);
$('#ajaxload').fadeIn(500);
},
success: function(text)
{
$('#ajaxload').fadeOut(500);
$('#ajaxcontent').fadeIn(500);
//die();
try
{
result = eval('(' + text + ')')
errresult = result.error;
switch (errresult)
{
case <?= ajax_ok ?>:
$('#dialog').dialog('close');
document.location.reload();
break;
case <?= ajax_okmessage ?>:
messagebox(result.message, 'инфо');
case <?= ajax_error ?>:
$('#ajaxcontent').html(result.errinfo);
break;
case <?= ajax_errorvalidation ?>:
$(formid).validate().showErrors(result.errinfo);
break;
case <?= ajax_errormesage ?>:
messagebox(result.errinfo, 'Ошибка');
break;
case <?= ajax_permissiondenied ?>:
break;
}
}
catch (e)
{
messagebox (text, 'error');
}
}
//End succes
})
return false;
}
Но вся проблема в том, что если данные приходят быстро все скрыться/отобразиться не успевает. Получается так:
выводится ответ сервера (подсвечиваются поля с ошибкой) потом все это плавно переходит в анимацию, потом обратно.
Не очень красиво и логично. Может кто-то сможет мне что-то подсказать. Пробовал скрывать/показывать по callback
$('#ajaxcontent').fadeOut(500, function(){
$('#ajaxload').fadeIn(500);
})
Выходит ещё хуже. Случается, что анимация так и не исчезает!!!