シナリオ
特定のリクエストに「ajaxStart」エフェクトを実装するにはどうすればよいですか?
まず第一に、Ajax メソッドをオーバーライドするコストが高すぎるため、jQuery 独自の Ajax イベント を引き続き使用できます。
Ajax によってトリガーされたグローバル イベントは、標準イベントと同様にすべての DOM ノードに伝播されます。レベル: jQuery イベント > Ajax イベント > カスタム Ajax イベント。
実装
Wo = window.Wo || { };
Wo.ajax = {
スピナー : $([])
,init : function() {
var $spinner = this.spinner = $('#ajax-読み込み') ;
var show = function(e) {
if(e.namespace === 'Wo') $spinner.show();
var Hide = function( e) {
$spinner.hide();
};
$spinner.Wo' :
を表示,'ajaxStop.Wo' : ,' ajaxError.Wo' : Hide
});
}
//リクエスト送信の準備
,_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);
}
})
イベントは次の特定のイベントです:
決定された名前空間。
トリガーされたときに、追加のパラメーターをイベント ハンドラーに渡します。
ここではイベントの名前空間を使用してトリガー ソースを決定します。 adapt メソッドはアダプターのアプリケーションと同等であり、別のインターフェースのセットを改良されたインターフェースに置き換えます。
load メソッドを追加したい場合は、ajax メソッドまたは要素の onload イベントである可能性があるため、少し面倒です。
プロキシ メソッドを追加して型判定を実行するには:
コードをコピーします
return this
};
の使用はすべて以前と同じです。 >
コードをコピーします
コードは次のとおりです:
Wo.post(url, [data,] callback )