在JS Variable中存储jQuery脚本

时间:2015-01-31 18:27:37

标签: javascript jquery variables callback

我有一个名为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); 

2 个答案:

答案 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();
});