[英]Set jQuery.ajax then execute
假設我要創建一個變量:
var ajax = $.ajax( url )
.done( function (response) {
//done body
})
.fail( function (jqXHR, status, errorThrown) {
//fail
})
.always( function () {
//always
});
但是我不希望它立即發送請求。 我想做類似的事情:
ajax.execute();
在某個時候,或者只是取消設置。 那可能嗎?
這個問題的關鍵是在不使用包裝器的情況下使用jQuery ajax的全部功能,或者使用可以使用當前所有$ .ajax方法的包裝器+可能不添加代碼就可以使用的新包裝器。
您可以編寫一個函數,然后使用jQuery監聽事件以觸發該函數。 例如
$("button").on("click", function(event) {
fireAjax();
});
function fireAjax() {
....do call here
)
為什么沒有功能?
var ajax = function ajax(url, doneFunc, failFunc, alwaysFunc){
var functions = {
"done":doneFunc,
"fail":failFunc,
"always":alwaysFunc
};
this.execute = function(){
$.ajax( url )
.done(functions.done)
.fail(functions.fail)
.always(functions.always);
};
}
您可以直接使用XMLHttpRequest
var oReq = new XMLHttpRequest();
oReq.open("GET", url);
oReq.send();
使用$.ajaxSetup()
定義應使用或可能被覆蓋的選項
$.ajaxSetup({
url: "",
success: success,
error: error
});
在這里調用$.ajax()
將使用url
, success
函數和$.ajaxSetup()
定義的error
函數。 或者,如果settings
應該改變,傳遞應該在改變設置$.ajax()
調用; 例如; $.ajax({url:"abc"}).always(fn)
仍將使用success
,定義的error
函數,盡管設置了新的url
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.