私はかなり単純に見える何かをしようとしています。基本的に、Ajax 開始イベントと Ajax 終了イベントをチェックする Ajax イベント リスナーがあり、開始または終了が検出されたときに実行され$.mobile.loading('show')
、Ajax イベントが終了したときに実行されます$.mobile.loading('hide')
。ただし、読み込みアイコンとテキストは表示されません。
Ajax イベントの開始リスナーとイベント終了リスナーに何か問題があると考えて、Ajax の開始イベントと終了イベントを正しく取得していなかったので、正常に$.mobile.loading('show')
機能する標準アラートに置き換えました。これが私のコードです:
$("#page1").ajaxStart(function() { $.mobile.loading('show'); });
と
$("#page1").ajaxEnd(function() { $.mobile.loading('hide'); });
私は自分が何か間違ったことをしていることを知っていますが、何をしているのかわかりません。何か案が?
ああ、場合によっては、この JQM アプリケーションは cordova (1.7.0) と jquery 1.8.1 と jquery mobile 1.1.1 で実行されています。
ライブラリはこの順序でロードされ、イベント リスナーはデバイスの準備完了イベントの後にロードされます。
それで:
function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady, false); }
function onDeviceReady() {
/ load the ajax start and end listeners code displayed above /
}
編集: これが私のドキュメントヘッドの外観です:
<script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>
<script src="js/jquery-1.8.1.min.js"></script>
<script src="js/jquery.mobile-1.1.1.js"></script>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
$("#page1").ajaxStart(function() {
$.mobile.loading('show');
});
$("#page1").ajaxStop(function() {
$.mobile.loading('hide');
});
}
ページ 1 には、JQM によって拡張されたいくつかのフォーム フィールドがあり、ユーザーが送信ボタンをクリックすると、ユーザーがネットワークに接続されているかどうかを確認する機能が実行され、接続されている場合は Ajax を介してそのデータが送信されます。この$.mobile.loading
メソッドは、Ajax が処理を行っているときに実行する必要がありますが、そうではありません。