国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

使用jQuery全局事件ajaxStart為特定請求實現(xiàn)提示效果的代碼

2019-11-21 00:00:56
字體:
來源:轉載
供稿:網友
情景
如何在特定的請求上實現(xiàn)"ajaxStart"的效果?
首先,重寫Ajax方法的代價太高,仍然可以利用jQuery自身的Ajax Events
Ajax觸發(fā)的全局事件會像一個標準事件一樣傳播到所有DOM節(jié)點上。層級:jQuery Events > Ajax Events > 自定義Ajax事件。
實現(xiàn)
復制代碼 代碼如下:

Wo = window.Wo || {};
Wo.ajax = {
spinner : $([])
,init : function() {
var $spinner = this.spinner = $('#ajax-loading');
var show = function(e) {
if(e.namespace === 'Wo') $spinner.show();
};
var hide = function(e) {
$spinner.hide();
};
$spinner.bind({
'ajaxStart.Wo' : show
,'ajaxStop.Wo' : hide
,'ajaxError.Wo' : hide
});
this.adapt(['getJSON','get','post','ajax']);
}
// 預備發(fā)送請求
,_prepare : function() {
this.spinner.trigger('ajaxStart.Wo');
}
// 接口批量變更
,adapt : function(fns) {
var self = this;
$.each(fns,function(i,fn) {
Wo[fn] = function() {
self._prepare();
$[fn].apply(this,arguments);
}
});
}
};

有兩種方法可以判斷出觸發(fā)的事件是否為特定的事件:
確定的命名空間。
在觸發(fā)時傳遞額外的參數(shù)給事件處理程序。
這里用事件的命名空間來進行觸發(fā)來源的判斷。adapt方法相當于適配器的應用,用一套改善的接口替代了另一套接口。
如果要增加load方法,稍微麻煩一點,因為有可能是ajax方法或者元素的onload事件。
要添加一個代理方法,并進行類型判斷:
復制代碼 代碼如下:

var _load = $.fn.load;
$.fn.load = function() {
$.type(arguments[0]) === 'string' && self._prepare();
_load.apply(this,arguments);
return this;
};

使用
所有方法參數(shù)仍與原先一致:
復制代碼 代碼如下:

Wo.post(url, [data,] callback)
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 定结县| 三原县| 廉江市| 甘孜| 会昌县| 镇赉县| 合江县| 麻城市| 普兰店市| 榆中县| 汶上县| 绥江县| 伊宁市| 苗栗县| 大连市| 滦平县| 巴林右旗| 本溪市| 宜宾市| 丰县| 石柱| 大竹县| 德兴市| 尼木县| 固阳县| 大余县| 阿坝县| 海南省| 离岛区| 洪洞县| 阿坝| 彰化市| 龙山县| 安塞县| 孝昌县| 南涧| 德阳市| 峨山| 金塔县| 和林格尔县| 南安市|