我正在研究别人的代码。我在jQuery中有这个简单的AJAX调用:
function getWSData (which, data, idVR)
{
if(which == 'verCandAll')
{
funcSuccess = verCandSuccess;
data = {'name' : 'val'};
}
else
{
funcSuccess = verElseSuccess;
data = {'name2' : 'val2'};
}
$.ajax({
type: 'POST',
url: wsURL,
data: data,
success: funcSuccess,
error:function ()
{
$("#msg").ajaxError(function()
{
popWaiting(false);
alert(verGenericCallError);
});
},
dataType: 'xml'
});
}
function verCandSuccess(xml){ ... }
function verElseSuccess(xml){ ... }
这很简单。我唯一的问题是success
回调。在verElseSuccess
的情况下,我会向该函数发送第二个参数,更确切地说,我将处理idVR
(getWSData
的输入参数)。我怎么能做到这一点?
答案 0 :(得分:2)
为此,您可以:
...
if(which == 'verCandAll') {
...
}
else {
// create an anonymous function that calls verElseSuccess with a second argument
funcSuccess = function(xml) {
verElseSuccess(xml, idVR);
};
data = {'name2' : 'val2'};
}
...
答案 1 :(得分:1)
使用Underscore.js partial功能:
funcSuccess = _.partial(verElseSuccess, idVR);