jQuery グローバル イベント ajaxStart を使用して特定の requests_jquery に対するプロンプト効果を実装するコード

WBOY
リリース: 2016-05-16 18:13:06
オリジナル
1025 人が閲覧しました

シナリオ
特定のリクエストに「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 イベントである可能性があるため、少し面倒です。
プロキシ メソッドを追加して型判定を実行するには:




コードをコピーします

コードは次のとおりです: var _load = $.fn.load; $.fn.load = function() { $.type(arguments[0]) === 'string' && self._prepare( ); _load.apply(this,arguments);
return this
};
の使用はすべて以前と同じです。 >



コードをコピーします

コードは次のとおりです:


Wo.post(url, [data,] callback )
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート