javascript - 如何为回调创建包装器?

标签 javascript jquery jquery-forms-plugin

我使用 ajaxSubmit。

form.ajaxSubmit(successCallback);

我需要为 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/

相关文章:

java - 用于匹配行数和每行字符数的正则表达式

javascript - 如何将人类可读的内存大小转换为字节?

javascript - RequireJS - 无法访问外部模块功能

javascript - TypeError : $(. ..).style is undefined - 错误还是我的错?

javascript - 如何在 IE8 中停止事件传播

javascript - 与 Bluebird 库取消 promise

javascript - hammer.js 对象没有方法 addEventListener

javascript - 如何ajax提交来自CKEditor的表单文本区域输入?

javascript - 根据名称选择jquery中的输入字段

validation - 无法阻止使用 jQuery 表单插件验证失败时的文件上传