2012-02-17 23 views
1

jQueryとJavascriptが新しくなったので、これは簡単かもしれません。コールバックに関数名を渡すにはどうすればよいですか?

$.ajax()を使用してサービスを呼び出す関数があります。サービスコールは正常に動作しますが、今度は戻っていくつかのクリーンアップを行う時間です。たとえば、私がサービスを呼び出すたびに、私は新しい関数を作成し、たくさんのコードをコピー/ペーストします。悪い練習、私は知っているが、私は試作していた。

サービスを呼び出し、その関数にコールバック関数の名前を渡す単一の関数を用意したいと思います。以下のコードでは、成功、エラー、および完了時に呼び出される関数の名前を渡したいと思います。また、関数に渡す引数も必要です。たとえば、成功すると関数GetCurrentPricingが呼び出され、応答がGetCurrentPricing関数に渡されます。

どうすればよいですか?私のような何かをするだろう

success: function(response) {GetCurrentPricing(whateverparameters)}, 
+0

はたぶんパラメータとしての機能そのものを渡すことを検討してください。 –

答えて

1

var success = function(response) { alert(response); }; 

function CallTheService(success) { 

    $.ajax(
     { 
     url   : varUrl, 
     type  : varType, 
     cache  : varCacheBool, 
     data  : varData, 
     contentType : varContentType, 
     processdata : varProcessData, 
     dataType : varDataType, 
     async  : varAsync, 
     success  : function(response) { success.call(response); }, 
     error  : function(err) {}, 
     complete : function() {} 
     } 
    ) 

} 
0このような
+3

、さらにもっと単純に: 'success:GetCurrentPricing、...' – biziclop

0

のような何かをするためにそれらのオプションが何であるか厥

success: function(response){ 
GetCurrentPricing(response) 
}, 

:あなたは、単純に関数を呼び出すことができ

function CallTheService() { 

    $.ajax(
     { 
     url   : varUrl, 
     type  : varType, 
     cache  : varCacheBool, 
     data  : varData, 
     contentType : varContentType, 
     processdata : varProcessData, 
     dataType : varDataType, 
     async  : varAsync, 
     success  : function(response) {}, 
     error  : function(err) {}, 
     complete : function() {} 
     } 
    ) 

} 
0

何か作業をする必要があります:

var successFunction = function(response) { GetCurrentPricing(); }; 

function CallTheService(successFunction) { 

    $.ajax(
     { 
     url   : varUrl, 
     type  : varType, 
     cache  : varCacheBool, 
     data  : varData, 
     contentType : varContentType, 
     processdata : varProcessData, 
     dataType : varDataType, 
     async  : varAsync, 
     success  : successFunction, 
     error  : function(err) {}, 
     complete : function() {} 
     } 
    ) 

} 
関連する問題