4

スピナーを表示/非表示にするためにajaxStart()とajaxStop()をリッスンしており、サーバーの作成中にJSでいくつかの模擬AJAXを実行しています。setTimeout()を使用してモックデータを生成する関数を呼び出すだけです。今のところ、スピナーでhide()とshow()を手動で呼び出していますが、「リクエスト」を開始および停止するときにJQueryに通知し、イベントをそのように処理させたいと思います。したがって、実際のajaxリクエストがバックグラウンドで実行されているときに、誤ってスピナーをhide()することはありません。

これは簡単にできますか?

編集:これは私が決めたコードです、トリックはJQuery.activeカウントを維持することです:

function fakeAJAX(f) {
    if(jQuery.active++ === 0 ) {
        jQuery.event.trigger("ajaxStart");
    }
    setTimeout(function () {
        f();
        if(!(--jQuery.active)) {
            jQuery.event.trigger("ajaxStop");
        }
    }, Math.round(Math.random() * 3000 + 250));
}
4

1 に答える 1

6

ソースによると、呼び出す必要があるのは次のとおりです。

jQuery.event.trigger( "ajaxStart" );

jQuery.event.trigger( "ajaxStop" );

それに応じて。

http://jsfiddle.net/zerkms/7RVbz/

于 2012-11-13T00:49:36.437 に答える