Не могу понять, почему он не будет синхронным, поскольку нечего предложить его асинхронный.
Вы пытались поместить три вызова функции в саму функцию:
jQuery.fn.doSomething = function() {
this.click(function() {
doAll();
});
};
jQuery.fn.doAll = function() {
_before();
_appear();
_after();
};
Или вы не можете этого сделать, потому что не можете изменить структуру?