0

私はJQTOUCHを使用していますが、JQTOUCHでは、いくつかのリンクがAJAXを介してロードされてからスライドインしています。問題は、ユーザーにロード表示が提供されないことです。

ajax呼び出しがロードされているときはいつでも、AJAXスピナーを使用してLoadingクラスを追加し、ロードが完了してページが表示されるときにクラスを削除する方法が必要です。

何か案は?

4

6 に答える 6

3

showPageByHref()の答えは部分的に正しいです。

しかし、代わりに

$('body').append('<div id="loadinginprogress">Loading...</div>');

あなたが必要です

$('.current').append('<div id="loadinginprogress">Loading...</div>');

本文はjqtouchには一般的すぎるため、現在表示されているDIVページに固有である必要があります

于 2010-10-19T02:00:20.920 に答える
2

jqtouch jsのshowPageByHref()関数は良いスタートです。すぐにajax呼び出しに追加したので、すでにロードされているリンクをクリックしてもちらつかないようにお待ちください。

要するに-ajax呼び出しの直前にloadingdiv(例ではid loadinprogress)を追加し、後で「success」または「error」を削除します。ajax呼び出しセクションは次のようになります(短縮):

function showPageByHref(href、options){
..。
if(href!='#'){
    $('body')。append('<divid="loadinginprogress">読み込み中...</div>');
    $ .ajax({
        url:href、
        データ:settings.data、
        タイプ:settings.method、
        成功:関数(データ、textStatus){
            $('#loadinginprogress')。remove()
            var firstPage = insertPages(data、settings.animation);
            if(firstPage)
            {{
                if(settings.method =='GET' && jQTSettings.cacheGetRequests &&settings。$referrer)
                {{
                    settings。$referrer.attr('href'、'#' + firstPage.attr('id'));
                }
                if(settings.callback){
                    settings.callback(true);
                }
            }
        }、
        エラー:関数(データ){
            $('#loadinginprogress')。remove()
            if(settings。$ referrer)settings。$ referrer.unselect();
            if(settings.callback){
                settings.callback(false);
            }
        }
    });
}
..。
}

divをロードするためのcssは次のようになります。

#loadinginprogress {
    -webkit-border-radius:10px;
    背景色:rgba(0,0,0、.5);
    色:白;
    フォントサイズ:18px;
    フォントの太さ:太字;
    高さ:80px;
    左:60px;
    行の高さ:80px;
    マージン:0自動;
    位置:絶対;
    text-align:center;
    上:120px;
    幅:200px;
    z-index:5000;
}
于 2010-08-23T22:54:50.497 に答える
1

これは、リンクがli class="arrow"要素である場合の基本的な動作です。リンクをどのように表示し、ローディングスピナーをどこに表示しますか?

于 2010-04-17T10:29:43.983 に答える
1

さまざまな投稿をありがとうございます。彼らは私を大いに助けてくれました。

jQTouchが依存するjQtouchコードにパッチを適用せずに提案するソリューションがあります。jQueryajax機能を使用します。


$(document).ready(function() {
...
  $('#jqt').ajaxStart(function() {
    console.log("ajaxStart");
    ...
  }).ajaxSuccess(function() {
    console.log("ajaxSuccess");
    ... 
  }).ajaxError(function() {
    console.log("ajaxError");
    .... 
  });
....
});

詳細については、このjQueryドキュメントページをご覧ください。

于 2012-02-25T00:59:20.790 に答える
0

カスタムイベントハンドラーを追加して、特定の要素をクリックするたびにloading.gifをトリガーできます。

于 2010-08-24T09:19:38.637 に答える
0

ダリン・パーカーの質問に答えました。それをチェックしてくださいそれはあなたを助けるかもしれません。

于 2010-11-15T10:51:53.690 に答える