Как создать обертку для обратного вызова?
Я использую ajaxSubmit.
form.ajaxSubmit(successCallback);
Мне нужно создать оболочку для successCallback.
Как это сделать?
Я старался
form.ajaxSubmit(wrapperCallBack(successCallback));
var wrapperCallBack = function (successCallback) {
debugger;
changeState(false);
successCallback(this);
};
1 ответ
Решение
Ты довольно близко
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);
});