7

これは私のコードです: http://jsfiddle.net/YKvR3/34/

配列 (名前) にある値でコントロールグループを作成します。問題は、読み込みボタンをクリックすると値がコントロールグループに追加されますが、画像のように jquery-ui スタイルが読み込まれないことです。コントロール グループは、jquery-ui モバイル CSS でスタイル設定されていません。

$("#load").click(function(){
var name=["one","two"];
var html='<fieldset id="listPlayers" data-role="controlgroup"><legend><h1>Choose as many players as youd like to remove:</h1></legend>';
for ( var int = 0; int < 2; int++) {
        html+='<input type="checkbox" name="checkbox-'+int+'a" id="checkbox-'+int+'a" class="custom" /><label for="checkbox-'+int+'a">'+name[int]+'</label>';
    }
    alert('<legend><h3>Choose as many players as you would like to remove:</h3></legend>'+html+'</fieldset');
    $("#list").html(html+'</fieldset');       
//$("#list").page();});​

ここに画像の説明を入力 私が間違っていることは何ですか?ありがとう。

4

4 に答える 4

10
$("#list").trigger('create');

出典: jqm ドキュメント

クライアント側で新しいマークアップを生成するか、Ajax を介してコンテンツを読み込んでページに挿入する場合、create イベントをトリガーして、新しいマークアップに含まれるすべてのプラグインの自動初期化を処理できます。これは任意の要素 (ページ div 自体も含む) でトリガーできるため、各プラグイン (リストビュー ボタン、選択など) を手動で初期化するタスクを節約できます。

于 2012-11-28T08:16:17.427 に答える
4

この投稿が古すぎる場合、および投稿が初めての投稿であるため正しい基準に従っていない場合は、お詫び申し上げます。ひどく悪い場合は修正してください:-]

しかし、他の誰かがそれに遭遇した場合に備えて、動的データの表示方法に同様の問題があり、上記のjsfiddlesとコメントを助けとして使用しました.ページのロード時に自動的にロードされるデータをロードするためのボタンがありません。

私の.htmlファイルで更新:

<div id="members"></div>     
<input type="button" id="load" value="test"/>

私の.jsファイルで更新:

$("#load").click(function(){

var name = ["NameOne","NameTwo", "NameThree"];
var fset = '<fieldset data-role="controlgroup" id="members-ctrlgroup"><legend>This is a legend:</legend>';
var labels='';

    for ( var i = 0; i < name.length; i++) {

        labels  += '<input type="checkbox" class="checkbox" id="c'
                + i
                + '"><label for="c'
                + i
                + '" data-iconpos="right">'
                + name[i]
                +'</label>';
    }
    $("#members").html(fset+labels+'</fieldset>');       
    $("#members").trigger("create");
});

「フィールド」を分割する方法が少し奇妙に見えることは知っていますが、これらの場合にhtml文字列全体を正しく取得する方がやや簡単だと思います。

更新された角を丸くして1つのコントロールグループにするためには、代わりにこのアプローチが必要です。以前のポスターが示したように。チェックボックス付きのIDと=のラベルが同じでない場合、出力を台無しにする傾向があることに注意してください:-]

フィドル

于 2013-07-08T14:34:50.610 に答える
1

コンテンツを置き換えるには、既存のコンテンツの後に新しいコンテンツを追加する の.html();代わりに使用する必要があります。.append()jQuery Mobile Page にコンテンツを追加した後、コンテンツを拡張する必要があります。$("input[type='radio']").checkboxradio();

于 2012-11-27T17:02:47.417 に答える