如何创建回调包装器?

时间:2013-03-29 12:05:32

标签: javascript jquery jquery-forms-plugin

我使用ajaxSubmit。

form.ajaxSubmit(successCallback);

我需要为successCallback创建包装器。

怎么做?

我试过

form.ajaxSubmit(wrapperCallBack(successCallback));

var wrapperCallBack = function (successCallback) {
        debugger;
        changeState(false);
        successCallback(this);
    };

1 个答案:

答案 0 :(得分:6)

你非常接近:

form.ajaxSubmit(wrapperCallBack(successCallback));

var wrapperCallBack = function (successCallback) {
    return function() {
        changeState(false);
        return successCallback(this);
    };
};

或者我更喜欢写它:

form.ajaxSubmit(wrapperCallBack(successCallback));

function wrapperCallBack(successCallback) {
    return function() {
        changeState(false);
        return successCallback(this);
    };
}

在那里,wrapperCallback创建一个函数来包装它的参数(successCallback参数)并返回该函数。

这两个假设您将使用wrapperCallBack多次创建包装器。如果你只需要一次性,那么你可以使用内联匿名函数:

form.ajaxSubmit(function() {
    changeState(false);
    return successCallback(this);
});