0

Ajax を使用して xml を読み込み、それを jQuery Mobile リストビューに整形しています。xml を送信した直後に、トリガー メソッドを呼び出して、ページを再初期化し、css スタイルを次のようにリストビューに追加できるようにします。

xmlhttp.send();
$("#page1").trigger( "create" );

ページをロードすると、リストビューにスタイルが一瞬表示されますが、jQuery Mobile スタイルなしでリストビューが表示されます。次のように遅延を使用するとうまくいくようです:

setTimeout(function(){
    $("#page1").trigger( "create" );
}, 5);

ブレークポイントを使用すると常に機能しているように見えたので、これに気付きました。ただし、この方法を使用すると、テーマのないリストがしばらくの間常に表示されるため、これは気になります。また、作成の直前と直後にリストを更新しようとしましたが、どれも機能していないようです。この問題を解決する方法を知っている人はいますか?

4

1 に答える 1

1

AJAX 要求は非同期です。つまり、応答が待機している間に他のコードが実行されます。AJAX リクエストを使用する一般的な流れは、リクエストのコールバック関数で受信したデータに対して何らかの作業を行うことです。jQuery AJAX を使用した例を次に示します。

$.ajax({
    url     : 'my-page.html',
    success : function (response) {
        $("#page1").html(response).trigger('create');
    },
    error   : function (jqXHR, textStatus, errorThrown) { /*remember to handle errors*/ }
});

これは、サーバー応答が有効な HTML であり、コンテンツをサーバーからの応答に置き換えたいと想定してい#page1ます。

于 2012-04-19T23:30:14.130 に答える