私はJQTOUCHを使用していますが、JQTOUCHでは、いくつかのリンクがAJAXを介してロードされてからスライドインしています。問題は、ユーザーにロード表示が提供されないことです。
ajax呼び出しがロードされているときはいつでも、AJAXスピナーを使用してLoadingクラスを追加し、ロードが完了してページが表示されるときにクラスを削除する方法が必要です。
何か案は?
私はJQTOUCHを使用していますが、JQTOUCHでは、いくつかのリンクがAJAXを介してロードされてからスライドインしています。問題は、ユーザーにロード表示が提供されないことです。
ajax呼び出しがロードされているときはいつでも、AJAXスピナーを使用してLoadingクラスを追加し、ロードが完了してページが表示されるときにクラスを削除する方法が必要です。
何か案は?
showPageByHref()の答えは部分的に正しいです。
しかし、代わりに
$('body').append('<div id="loadinginprogress">Loading...</div>');
あなたが必要です
$('.current').append('<div id="loadinginprogress">Loading...</div>');
本文はjqtouchには一般的すぎるため、現在表示されているDIVページに固有である必要があります
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; }
これは、リンクがli class="arrow"要素である場合の基本的な動作です。リンクをどのように表示し、ローディングスピナーをどこに表示しますか?
さまざまな投稿をありがとうございます。彼らは私を大いに助けてくれました。
jQTouchが依存するjQtouchコードにパッチを適用せずに提案するソリューションがあります。jQueryajax機能を使用します。
$(document).ready(function() {
...
$('#jqt').ajaxStart(function() {
console.log("ajaxStart");
...
}).ajaxSuccess(function() {
console.log("ajaxSuccess");
...
}).ajaxError(function() {
console.log("ajaxError");
....
});
....
});
詳細については、このjQueryドキュメントページをご覧ください。
カスタムイベントハンドラーを追加して、特定の要素をクリックするたびにloading.gifをトリガーできます。
ダリン・パーカーの質問に答えました。それをチェックしてくださいそれはあなたを助けるかもしれません。