如何在不调用函数的情况下将函数作为javascript中对象的一部分传递

时间:2011-10-22 20:34:02

标签: javascript jquery

我正在尝试使用.ajaxSubmit()。我想传递它的选项对象。我想根据用户的行为创建此选项对象。所以我就是这样做的:

$('#my-form').ajaxSubmit(GetSearchAjaxFormOptions(param1, param2));

function GetSearchAjaxFormOptions(param1, param2) {
    return { target: '#results',
        data: GetData(),
        success: RunAfterAjaxSubmit(param1, param2)
    };
}

function RunAfterAjaxSubmit(param1, param2) {
    //    do stuff
}

除了在ajax调用返回之后调用RunAfterAjaxSubmit以及在以下行进行ajax调用之前调用RunAfterAjaxSubmit之外,一切正常:

成功:RunAfterAjaxSubmit(param1,param2)

如何更改我的代码,以便仅在返回ajax调用后调用它。

非常感谢!

2 个答案:

答案 0 :(得分:1)

这听起来像关闭工作。 ajax success属性需要一个回调函数,它将尝试将其返回的数据作为第一个参数。如果您仍想使用param1和param2

,请执行此类操作
$('#my-form').ajaxSubmit(GetSearchAjaxFormOptions(param1, param2));

function GetSearchAjaxFormOptions(param1, param2) {
    return { target: '#results',
        data: GetData(),
        success: RunAfterAjaxSubmit(param1, param2)
    };
}

function RunAfterAjaxSubmit(param1, param2) {
    return function(ajaxData){
         //do stuff with param1 and param2 here as well as the ajaxData it returns if any
    }
}

答案 1 :(得分:0)

将成功线更改为:

success: function () { RunAfterAjaxSubmit(param1, param2)}

修复了问题