Итак, в основном вы делаете
1) отключение вашей кнопки и показ изображения
2) запуск асинхронного события
3) немедленное включение вашей кнопкиеще раз и скрывая изображение
Вызов ajax, который вы делаете, не повесит функцию, из которой вы его вызываете.Функция вызывается в отдельном потоке, и поэтому изображение отключается / включается так быстро, что вы даже не можете сказать.Что вам нужно сделать, так это прикрепить функции к событиям ajax, которые предоставляет jQuery.
Вы можете прикрепить событие к исходному событию вызова ajax, которое отключит кнопку и покажет изображение загрузки, а затем прикрепить событие кчасть завершения вызова, которая снова включит вашу кнопку и избавится от изображения.
Для этого вам нужно сделать два варианта:
1) Расположить эффекты манипуляции кнопкой и изображениемв событиях .success и .fail, которые прикреплены к вашему отдельному вызову ajax
2) Присоедините функции к событиям .ajaxStart и .ajaxComplete, которые отображаются на странице.Однако, это сделает то же самое для всех вызовов ajax на странице.Более подробную информацию можно найти здесь: http://api.jquery.com/category/ajax/