使用不同的参数进行成功回调

时间:2013-05-02 10:36:50

标签: javascript jquery

我正在研究别人的代码。我在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的情况下,我会向该函数发送第二个参数,更确切地说,我将处理idVRgetWSData的输入参数)。我怎么能做到这一点?

2 个答案:

答案 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);