4

私は、サーバーから取得しているJSON文字列に基づいてJQ Mobileテーブルに行を追加しています。行が動的に追加された後にJQueryモバイルテーブルを更新する方法

リフレッシュ後に初めてページに移動すると、スタイリングは追加されませんが、それ以降はすべて正常に機能します。

リストビューの場合のように、テーブルをリフレッシュ/初期化する方法はありますか?私は、行を追加していどこ

以下のコードは次のとおりです。

$.each(result, function() { 
    var imgString; 

    if(result[i]["status"] == 'Y') { 
     imgString = '<img src= images/checkMark.png height=\"40\" width=\"40\" align=\"middle\">'; 
    } else { 
     imgString = ''; 
    } 

    $('#pickupTable > tbody:last').append('<tr><td class=\"tableRow10\">' + imgString + 
     '<td class=\"tableRow80\"><a><button class=\"selectPickup\" pickupCode = \"'+ 
     result[i]["id"] + '\"> '+ result[i]["address"] +'</button></a></td></tr>'); 
    i++; 
}); 

$('#pickupTable > tfoot:last').append('<tr><td colspan="5">Total Pick Ups: ' 
    +result.length + '</td></tr>'); 
+0

私はあなたの例をChromeで試してみました。おそらくモバイルデバイスに問題がありますか? –

答えて

6

を、私はあなたが(「作成」).trigger使うことをお勧め。そしてページ、jQMドキュメントリフレッシュ:


新しいマークアップを強化ページのプラグインは、ほとんどのウィジェットが自動初期化自分自身をに使用pagecreateイベントを、送出します。ウィジェットプラグインスクリプトとして が参照されると、ページ上で見つかったウィジェットのインスタンスが自動的に拡張されます( )。あなたは Ajaxを介してコンテンツに新しいマークアップクライアント側または負荷を生成し、ページに注入場合

しかし、あなたは 新しい内に含まれるすべてのプラグインの自動初期化を扱う に作成したイベントをトリガすることができますマークアップ。これは任意の要素(ページ div自体さえ)でトリガーされ、各プラグイン (リストビューボタン、選択など)を手動で初期化する作業を保存します。

のAjax経由で をロードされたHTMLマークアップ(たとえば、ログインフォーム)のブロック場合たとえば、自動的 にそれが含まれている すべてのウィジェット(この場合は、入力やボタン)を形質転換するために作成するイベントをトリガは、拡張バージョン。このシナリオのためのコードは次のようになります。

$(...new markup that contains widgets...).appendTo(".ui-page").trigger("create"); 
7

あなただけで使用することができるはずです。 $("#myTable").table("refresh");

をしかし、それはjQueryのモバイルのバージョン1.3.0のために実装されていません。ページが初期化される、または行が追加された後まで、テーブルの属性データ-役割=「テーブル」を設定しないの前に行を追加するか持っているよう

https://github.com/jquery/jquery-mobile/issues/5570

を参照してくださいね。 $("#myTable").table();

私が取り組んでいる実装では、ユーザーが行を追加できるようにしました。幸いにも私のサイトは大規模なモバイルデバイスで表示されるように設計されていますので、私は1.3.1を待つことができます

+0

後の段階で 'data-role =" table "を追加するのが良い点です。問題はまだ、どのようにリフレッシュするか、例えばページングするときです。 – frequent

関連する問題