我使用ajaxSubmit。

form.ajaxSubmit(successCallback);

我需要为成功调用创建包装器。

这该怎么做?

我试过了
form.ajaxSubmit(wrapperCallBack(successCallback));

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

最佳答案

您非常接近:

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);
});

关于javascript - 如何为回调创建包装器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15702873/

10-13 01:51