我有一个名为callback
的变量函数function test(callback){
// Some code
callback;
}
当我调用此函数时,我曾经将一个衬里插入回调
例如。 test($('#elem').hide());
现在我想把多行放在这里作为回调。我尝试了这个,但似乎没有用。
var resetc = function(){
$('.access').removeClass('viz');
window.setTimeout(function(){
$('.access').find('.input.wheel').removeClass('viz');
$('.access').find('input').removeAttr('disabled');
},1000);
}
test(resetc);
答案 0 :(得分:2)
在传递函数引用时。您可以使用回调变量来执行它所引用的函数。像
function test(callback) {
// Some code
callback();
}
您声明test($('#elem').hide());
无效,因为您将$('#elem').hide()
的输出传递给方法测试,而声明callback;
实际上没有执行任何操作。
您需要使用
更改test($('#elem').hide());
的函数调用
test(function() {
$('#elem').hide();
});
答案 1 :(得分:0)
您的初始代码没有按照您的想法执行。要调用回调,您需要在其后面添加()
:
function test(callback) {
// some code
callback();
}
如果你解决了这个问题,test(resetc);
会做你想做的事。
你在第一次测试中没有注意到这一点的原因是因为你写的时候
test($('#elem').hide());
您正在执行$('#elem').hide()
调用test
之前,test
运行回调时没有执行此操作。您需要传递一个函数来推迟执行,直到调用回调:
test(function() {
$('#elem').hide();
});