jQuery, ajax и анимация. Глюк.
Подскажите.
Есть, например код (используется плагин jQuery Forms).
Возникает ужасный глюк.
Если AJAX быстро обрабатывается (берется из кеша, или, например хороший интернет), то видим картину.
Начинает анимироваться блок "beforeSubmit", когда анимация еще не закончена, а запрос ajax уже выполнен, то начинается анимироваться блок success, после доанимирутся блок beforeSubmit.
Визуально это выглядит как убирается контент, появляется загрузка, до конца див загрузки не открывается, срабатывает блок success, блоки появляются и сразу исчезают, а потом сразу появляется див #js_loding_div и сразу исчезает див #js_content_div
-~{}~ 07.02.09 19:48:
Решил. Кому интересно
Подскажите.
Есть, например код (используется плагин jQuery Forms).
Код:
$("js_edit_object_form").ajaxForm({
beforeSubmit: function() {
$("#js_content_div").hide("nornal", function() {
$("#js_loding_div").show("normal");
})
},
success: function(result) {
$("#js_content_div").html(result);
$("#js_loding_div").hide("nornal", function() {
$("#js_content_div").show("normal");
})
}
});
Если AJAX быстро обрабатывается (берется из кеша, или, например хороший интернет), то видим картину.
Начинает анимироваться блок "beforeSubmit", когда анимация еще не закончена, а запрос ajax уже выполнен, то начинается анимироваться блок success, после доанимирутся блок beforeSubmit.
Визуально это выглядит как убирается контент, появляется загрузка, до конца див загрузки не открывается, срабатывает блок success, блоки появляются и сразу исчезают, а потом сразу появляется див #js_loding_div и сразу исчезает див #js_content_div
-~{}~ 07.02.09 19:48:
Решил. Кому интересно
Код:
{literal}
<script>
$(document).ready(function() {
//
// Обработка submit'a формы
//
$("#js_block_header").submit(function() {
$("#js_estate_search_result").hide("slow", function() {
$("#js_estate_edit_form_container").hide("slow", function() {
$("#js_estate_loading").show("slow", function() {
$("#js_block_header").ajaxSubmit({
async: false,
success: function(data) {
if (data) {
$("#js_estate_search_result").html(data);
$("#js_estate_loading").hide("normal", function() {
$("#js_estate_search_result").show("normal");
});
};
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Произошла ошибка при AJAX запросе. Возмоно страница не найдена. Ответ от сервера:" + XMLHttpRequest.responseText);
}
});
});
});
});
return false;
});
});
</script>
{/literal}