2012-05-01 61 views
-2

我使用單AJAX方法都在我的網站,我需要所有的參數化未參數和選項,也回調方法(成功,beforeSend,錯誤等)參數多態Ajax回調

現在我寫道:

function ajax(_type,_url,_data,_dataType,_starter,_callback_success,_callback_error, etc ..){ 
    $.ajax({ 
     type:_type, 
     data:_data, 
     dataType:_dataType, 
     url:'http://localhost:9292/'+_url, 
     success: _callback_success, 
     error: _callback_error, 
     // etc ... 
    }); 
} 

後,我想用這種方式,例如使用此方法:

ajax(
    'GET', 
    users, 
    {}, 
    'json', 
    false, 
    function(){ 
     alert(json); 
    }); 

我不知道我怎麼可以參數化狀態(成功,錯誤,BeforeSend)?我與簡單瓦爾_callback_error或_callback_success嘗試,但它不是我清楚如何通過在狀態回調

希望是明確的,我的問題

+5

你還不清楚,至少對我來說。 **更新:**(以及對評論的支持者...) – gdoron

+0

我想你忘記了包括你的問題。 –

+0

這是什麼目的? – Eli

回答

3

jQuery將通過那些進入回調時調用它們。

function ajax(_type,_url,_data,_dataType,_callback_success, _callback_error){ 

    $.ajax({ 
     type:_type, 
     data:_data, 
     dataType:_dataType, 
     url:'http://localhost:9292/'+_url, 
     success: _callback_success, 
     error: _callback_error 
    }); 
} 

下面是您的函數的一個示例用法。

ajax('POST', '/test.php', {}, 'json', function(data, textStatus, jqXHR){ 
     // if request succeeds this callback will be invoked 
    }, function (jqXHR, textStatus, errorThrown){ 
     // if request fails this callback will be invoked 
    } 
}); 
+0

如果我需要在錯誤,成功和beforeSend狀態中使用回調,該怎麼辦?因爲我可以看到我只能傳遞1個textStatus ... – sbaaaang

+1

然後你做的事情完全一樣,看看我的編輯。 –

+0

wonderfull !!!你是最大的人!謝謝 – sbaaaang

1

傳遞函數名以成功和錯誤:

http://jsfiddle.net/SJ8Xm/

function mySuccess(data) { 
    document.write(JSON.stringify(data)); 
} 

function myError(err) { 
    alert(err); 
} 

ajax("jsonp", "https://ajax.googleapis.com/ajax/services/search/images?callback=?", { q: "cats", v:"1.0" }, "jsonp", "", mySuccess); 

function ajax(_type,_url,_data,_dataType,_starter,_callback_success,_callback_error){ 
    $.ajax({ 
     type:_type, 
     data:_data, 
     dataType:_dataType, 
     url:_url, 
     success: _callback_success, 
     error: _callback_error 
    }); 
}​