toggle function

toggleClass is executed immediately and so you don't need a callback for toggleClass, just place the alert('a') in the next line which will alert after toggleClass is executed.

Edit: Looks like you want jQuery UI Effects - toggleClass which unfortunately doesn't have a callback function.

Probably you should write your own toggle function. See below for fadeIn/fadeOut toggle,

var $loader = $("#loader");
if ($':visible')) {
  $loader.fadeOut(100, function () {
      alert('fade out complete');
} else {
  $loader.fadeIn(100, function () {
      alert('fadeIn complete');