2013-05-02 30 views
0

我正在處理別人的代碼。我在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)。我怎樣才能做到這一點?

回答

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

使用Underscore.js partial功能:

funcSuccess = _.partial(verElseSuccess, idVR); 
相關問題