回调中的回调?

我写了一个回调(我相信它被称为):

hugeFadeIn(); 

这是一个简单的代码,可以淡入一些内容,这样我就不会一遍又一遍地重复使用相同的代码。

然后我想在hugeFadeIn完成后执行一些代码……所以我这样做了:

 hugeFadeIn(){ //la la la }); 

那是错的,所以我这样做了:

 $(hugeFadeIn(){ //la la la }); 

我仍然会遇到错误。 我究竟做错了什么? 感谢大家 :)

根据要求编辑 hugeFadeIn函数的主体:

 function hugeFadeIn() { $("#huge-loader").fadeIn("fast"); } 

如果你想在hugeFadeIn完成后运行一些东西,你需要传递你的回调。

 function hugeFadeIn(after) { // whatever after(); } 

(如果hugeFadeIn自身褪色并且不依赖于调用本身需要回调的东西。)

OP编辑后编辑。

 function hugeFadeIn(after) { $("#huge-loader").fadeIn("fast", after); } 

关…

 hugeFadeIn(function() { alert('My callback is running'); }); 

然后在hugeFadeIn()中

 hugeFadeIn = function( fn ) { fn(); } 

如果你需要用同一个元素做一些事情,只需在第一个方法之后调用第二个方法

 hugeFadeIn(); someOtherMethodCall(); 

如果你需要处理页面上的其他元素,你需要在第一个方法完成后强制调用第二个方法 – 使用延迟方法(http://api.jquery.com/delay/)

 hugeFadeIn(); someOtherMethodCall(); someOtherMethodCall(time){ $('#some-id').delay(time).hide(); } 

 function hugeFadeIn(time, callback) { $('.something').fadeIn(time, callback); } 

那么

 hugeFadeIn(500, doAjaxWhathever); 

或类似的东西用于异步

 $.HugeFade = function(item, time, callback) { $(item).fadeIn(time); callback();} $.HugeFade('#myDiv', 1500, myCallback); 

但如果您使用hugeFadeIn作为回调,则无法执行此操作

 $('#myDiv').load(url, hugeFadeIn(500, callback2)); //wrong // it should be.. $('#myDiv').load(url, function(){hugeFadeIn(500, callback2)}); 

当我写一个函数时,我通常会为回调设置一个参数:

 function myFunction(param1, callback_param){ alert(param1); // do stuff here if(typeof(callback_param) == "function"){ callback_param(); } } 

这就是我怎么称呼它。

 myFunction('Hello World', function(){ alert('Yes!, this is the World, how can i help you?'); }); 

希望这有所贡献。 谢谢