jQuery ajax调用的可参数化成功函数

时间:2012-05-31 11:16:22

标签: javascript ajax

我想创建一个函数,用一个参数来调用jQuery $ .ajax函数,该参数指示在成功事件之后必须调用的成功函数名。

这样的东西,但我不知道如何填写“完整”参数,或者即使可以这样做:

function callService(successFunctionName){
$.ajax({
 url: "serviceURL",
 type: "POST",
 data: "request",
 contentType: "text/xml; charset=\"utf-8\"",
 complete: successFunctionName
});

}

succesFunction1(){
}

successFunction2(){
}

编辑:我必须澄清successFunctionName是一个字符串

3 个答案:

答案 0 :(得分:1)

如果successFunctionName是字符串,则可以使用window[successFunctionName]。如果是功能本身它应该已经工作

function callService(successFunctionName) {
    $.ajax({
        //...
        complete: (typeof successFunctionName === "string" ? window[successFunctionName] : successFunctionName)
    })
}

答案 1 :(得分:0)

你所做的是正确的。

拨打callService时,您会这样做:

callService(function(resp)
{
    alert('Success: ' + resp);
}):

答案 2 :(得分:0)

我认为您希望回拨Ajax成功,而不是完成?

为了成功:

 $.ajax({
   ......    
   success: successFunctionName

  });  

完成:

  $.ajax({
   ......    
  }).done(function(){
     successFunctionName();
  });