Является ли проблема, что вы делаете синхронный вызов ajax? Я считаю, что это замораживает браузер от выполнения любых других действий, включая перекрашивание экрана, чтобы показать ваш счетчик. Попробуйте сделать свой вызов ajax асинхронным и спрячьте спиннер в обратном вызове. Могу поспорить, что это работает. Примерно так:
function OnClickMyButton()
{
LoadSpinner();
AnAjaxCall(function() { UnloadSpinner() } );
}
function AnAjaxCall(callback)
{
//do ajax. On complete, call callback. check the web for examples.
}
Держу пари, что проблема не имеет ничего общего с jquery, а с синхронным вызовом ajax.
Чтобы проверить мою теорию, попробуйте этот код:
function OnClickMyButton()
{
LoadSpinner();
setTimeout(function() { UnloadSpinner() }, 2000);
}
Могу поспорить, что спиннер появляется на 2 секунды просто отлично. Если это не так, игнорируйте этот пост .. Я совершенно не прав.