2012-05-31 2 views
1

Я хочу создать функцию для вызова функции jQuery $ .ajax с параметром, который указывает имя функции успеха, которое должно быть вызвано после события успеха.Параметризируемая функция успеха для jQuery ajax call

Что-то вроде этого, но я не знаю, как заполнить «полный» параметр, или даже, если это возможно, чтобы сделать это:

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

} 

succesFunction1(){ 
} 

successFunction2(){ 
} 

Edit: я должен уточнить, что successFunctionName является строка

ответ

1

Если successFunctionName это строка, вы можете использовать window[successFunctionName]. Если это сама функция, она должна работать уже

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

Спасибо Andreas! Это то, что я искал! – Marshal

+0

Добро пожаловать :) – Andreas

0

Что вы сделали правильно.

Когда звонит callService вы могли бы сделать:

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

Я думаю, что вы хотите иметь обратный вызов для успеха Ajax, не завершена?

Для успеха:

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

    }); 

Для полной:

$.ajax({ 
    ......  
    }).done(function(){ 
    successFunctionName(); 
    }); 
Смежные вопросы