2012-05-31 42 views
1

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

这样的事情,但我不知道怎么填了“完整”的参数,或者即使有可能做到这一点:

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

} 

succesFunction1(){ 
} 

successFunction2(){ 
} 

编辑:我要澄清,successFunctionName是字符串

回答

1

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

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

谢谢安德烈亚斯!这就是我一直在寻找的! – Marshal

+0

不客气:) – Andreas

0

你所做的是正确的。

当调用您的callService你会做:

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

我想你想有回叫Ajax的成功,就没有完成?

成功:

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

    }); 

有关完整:

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