0

リストビューにチェックボックスを動的に追加する次のコードがあります。最初の表示では、図 1 のように乱雑な書式設定が表示されます。同じコードを呼び出してリストビューのコンテンツを更新する更新ボタンをクリックすると、図 2 のように正しく表示されます。

私は何かを逃したのですか?ありがとう

pic1: http://postimage.org/image/6bvo8fpdd/ pic2: http://postimage.org/image/gnyuokteb/

<div data-role="page" id="page2">


<div data-role="content" align="center">    
    <fieldset data-role="controlgroup" data-type="horizontal"><input type="radio" name="q1" id="checkall" value="checkall"/><label for="checkall">Check All</label><input type="radio" name="q1" id="uncheckall" value="uncheckall" checked="checked"/><label for="uncheckall">Uncheck All</label></fieldset>
    <p>
    <fieldset data-role="controlgroup" >                                                             
    <ul id="mylist" data-role="listview" data-inset="true" data-theme="d" data-count-theme="b" data-filter="true" ">            

    </ul>
    </fieldset>
    </p>                   
</div>

function showCode(refresh){
var output ='';
var iCounter = 0;


$('#mylist').empty();

for (var i = 0; (i < g_Data.length && iCounter < 10); i+=2 ) {
            iCounter += 1;

            output += '<li><input type="checkbox" name="chk-'+iCounter + 'a" id="chx-'+iCounter +'a" class="custom" />'+ g_Data[i]+'<span class="ui-li-count">' + g_Data[i+1] + '</span></li>';

        }

$('#mylist').append(output).listview('refresh');}   
4

1 に答える 1

0

リストビューの「更新」を呼び出した後、ページの「作成」機能を呼び出してみてください。

このようなもの:

// refresh list
$('#mylist').append(output).listview('refresh');

// refresh page
$('#page2').trigger('create');    
于 2013-03-14T14:30:20.953 に答える