Во-первых, если вы хотите отображать анимацию во время загрузки, используйте ajaxStart и ajaxStop . Это делает это безболезненно. Вот пример:
// Примечание! Это использует JQuery-UI, чтобы сделать диалог ...
jQuery(document).ready(function() {
var body = jQuery("body");
body.append('<div id="ajaxBusy"><div style="text-align:center" ><p>Communicating with server...<br \/>Please wait for this operation to finish.<br \/><img src="\/js\/jquery.smallhbar.indicator.gif" \/><\/p><\/div><\/div>');
jQuery('#ajaxBusy').css({
display:"none",
margin:"0px",
width:"260px",
height:"170px",
padding:"5px",
textAlign:'center'
});
jQuery("#ajaxBusy").dialog({
autoOpen: false,
bgiframe: true,
closeOnEscape: false,
//modal: true,
title: 'Shipping Department'});
jQuery(document).ajaxStart(function() {
jQuery('#ajaxBusy').dialog('open');
});
jQuery(document).ajaxStop(function() {
jQuery('#ajaxBusy').dialog('close');
});
});
С этим кодом в моем разделе jQuery.ready, при выполнении операций ajax автоматически мигает симпатичное диалоговое окно.
Наконец, если вам нужно потом показывать контент, вам нужно поместить свой метод show () в функцию успеха вашего вызова ajax. Если у вас есть несколько вызовов ajax, вам нужно использовать некоторые переменные в качестве флагов, чтобы сигнализировать, когда все сделано (неуклюже).
Есть ли у вас один или несколько вызовов ajax?