2012-04-19 4 views
0

私は、Ajaxを使用してxmlをロードし、jQuery Mobileリストビューにシェイプします。jQueryモバイル・トリガーの作成には、遅延が必要です

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

私はページをロードすると、私は次を参照してください。右ページが再初期化することができ、CSSスタイルがそうのようなリストビューに追加することができるように、私はトリガーメソッドを呼び出していたXMLを送信した後 リストビューのスタイルは数分の1秒ですが、リストビューはjQuery Mobileスタイルなしで表示されます。私はブレークポイントを使用する場合、常に動作するように見えたとして

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

私はこれに気づいた:そうのようにかかわらず、私は遅れを使用するときに動作するようです。しかし、私はこの方法を使用すると、私はいつも短い時間のためにunthemedリストを参照してください、これは私を悩ます。私はまた作成の前後にリストをリフレッシュしようとしましたが、うまくいきませんでした。誰もがこの問題を解決する方法を知っていますか?

答えて

1

AJAX要求は非同期です.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の内容を交換したいとすることを前提としています。

+0

xmlhttpを使用しているときにこれを動作させるにはどうすればよいですか?私は私のコンテンツを次のように置き換えます:document.getElementById( 'content')。innerHTML = rawhtml; xmlhttp.open( "GET"、url、true); xmlhttp.send(); – Dan

+0

申し訳ありません。私はそれに熟練していません。私は利用する必要のあるAJAXに対してjQueryを使用しています。 Google(または何でも)から 'xmlhttp ajax callback'のようなものを検索してください。それはあなたに正しい答えを見つけるはずです。 – Jasper

+0

私はajaxを使って別のhtmlページから取得しましたが、あなたの例のように生のリストビューを提供しています。しかし、トリガーはそのような場合には効果がないようです。 – Dan

関連する問題