我剛剛移動到jquery 1.11.1(我在1.2.x之前在這個項目上)。用於將響應文本/ html拉入元素的$ .load函數似乎並沒有突然觸發回調!Jquery加載回調不啓動時,實際加載的東西
$("#thing").load("page", null, callback);
所以我調試了jQuery代碼..如預期它使用$阿賈克斯,抓住一個頁面,它PULS使用$ html的自我,然後回調實際上是對的「完整」的功能解僱$就。無論ajax是否成功,此功能都會始終開啓。駕駛自己INSANE一段時間後,我試圖只是調用調用自己來測試我是不是真的要瘋了..這是我發現
$.ajax({url:"page"})
.done(function(r){
$("#thing").html(r);
})
.complete(function(){alert("complete");});
這個填充元素,但並沒有給我alernt ..但是下面的確讓我警覺!爲什麼?
$.ajax({url:"page"})
.done(function(r){
//$("#thing").html(r);
alert("done...?");
})
.complete(function(){alert("complete");});
我同時獲得完成和完整警報..
更新1
有關使用 「總是」,而不是 「完整」 的評論。我想用「負荷」而不是「AJAX」的,這是JQ代碼1.11.1
// Keep a copy of the old load method
var _load = jQuery.fn.load;
/**
* Load a url into a page
*/
jQuery.fn.load = function(url, params, callback) {
if (typeof url !== "string" && _load) {
return _load.apply(this, arguments);
}
var selector, response, type,
self = this,
off = url.indexOf(" ");
if (off >= 0) {
selector = jQuery.trim(url.slice(off, url.length));
url = url.slice(0, off);
}
// If it's a function
if (jQuery.isFunction(params)) {
// We assume that it's the callback
callback = params;
params = undefined;
// Otherwise, build a param string
} else if (params && typeof params === "object") {
type = "POST";
}
// If we have elements to modify, make the request
if (self.length > 0) {
jQuery.ajax({
url: url,
// if "type" variable is undefined, then "GET" method will be used
type: type,
dataType: "html",
data: params
}).done(function(responseText) {
// Save response for use in complete callback
response = arguments;
self.html(selector ?
// If a selector was specified, locate the right elements in a dummy div
// Exclude scripts to avoid IE 'Permission Denied' errors
jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector) :
// Otherwise use the full result
responseText);
}).complete(callback && function(jqXHR, status) {
self.each(callback, response || [ jqXHR.responseText, status, jqXHR ]);
});
}
return this;
};
通知它如何使用「完整」 ..
'.complete'在1.11中不存在,它是'.always'。你的第一個例子雖然應該工作。刪除'空',' – 2014-10-01 16:12:55
這不是我所做的..這就是實際的jquery「加載」方法.. ..我無法控制這個 – 2014-10-01 16:17:19
我...不理解你的評論。 – 2014-10-01 16:17:52