2

我使用 ajaxSubmit。

form.ajaxSubmit(successCallback);

我需要为 successCallback 创建包装器。

这该怎么做?

我试过

form.ajaxSubmit(wrapperCallBack(successCallback));

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

1 回答 1

7

你非常接近:

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);
});
于 2013-03-29T12:08:56.857 回答