我写了一个回调(我相信它被称为):
hugeFadeIn();
这是一个简单的代码,可以淡化某些内容,这样我就不会一遍又一遍地重复使用相同的代码。
然后我想在hugeFadeIn
完成后执行一些代码...
所以我这样做了:
hugeFadeIn(){
//la la la
});
那是错的,所以我这样做了:
$(hugeFadeIn(){
//la la la
});
我仍然会遇到错误。我究竟做错了什么?谢谢大家:)
修改
根据要求,hugeFadeIn
函数的正文:
function hugeFadeIn() {
$("#huge-loader").fadeIn("fast");
}
答案 0 :(得分:2)
如果您希望在hugeFadeIn
完成后运行某些内容,则需要将回调传递给。
function hugeFadeIn(after) {
// whatever
after();
}
(如果hugeFadeIn
褪色本身并且不依赖于调用本身需要回调的内容。)
编辑。
function hugeFadeIn(after) {
$("#huge-loader").fadeIn("fast", after);
}
答案 1 :(得分:1)
...接近
hugeFadeIn(function() {
alert('My callback is running');
});
然后在hugeFadeIn()
中hugeFadeIn = function( fn ) {
fn();
}
答案 2 :(得分:1)
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)});
答案 3 :(得分:1)
如果您需要对同一个元素执行某些操作,只需在第一个方法之后调用第二个方法
hugeFadeIn();
someOtherMethodCall();
如果你需要处理页面上的其他元素,你需要在第一个方法完成后强制调用第二个方法 - 使用延迟方法(http://api.jquery.com/delay/)
hugeFadeIn();
someOtherMethodCall();
someOtherMethodCall(time){
$('#some-id').delay(time).hide();
}
答案 4 :(得分:1)
当我写一个函数时,我通常会为回调设置一个参数:
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?');
});
希望这有所贡献。 感谢