0

JSONファイルから動的に生成されたリストビューがあります。

$.getJSON('test2.json', function(data) {
                var items = [];
                $.each(data, function(key, val) {
                    items.push('<li data-theme="c" data-icon="myapp-arrow" class="test1"><a href="#dataviewer" data-transition="slide"><p>' + key + '</p>' + val + '</a></li>');
                });
                $('<ul/>', {'data-role' : 'listview','id': 'my-new-list', 'data-divider-theme':'a', 'data-inset': 'false',html: items.join('')}).appendTo('.container');
                alert('Here is where the refresh should fire!');
                $("#my-new-list").listview("refresh");
            });

リスト項目をページに追加しますが、スタイルはまったく設定しません。Chromes インスペクタを使用して、リスト コードをコピーして html ドキュメントに貼り付けると、スタイルは問題ありません。私は何を間違っていますか?

4

2 に答える 2

2

試してみてください$('.ui-page').trigger("create");。まだ作成されていない場合、リストビューを更新することはできません。

于 2012-04-24T10:11:29.107 に答える
0

関数をページの初期化にバインドし、.listview() メソッドから「更新」を削除すると、問題が解決しました。私が知る限り、この初期関数の後の追加のリスト構築には ('#page-id').listview(refresh); を含める必要があります。そして、それは問題なく更新されるはずです。

$( '#searchpage' ).live( 'pageinit',function(){
                $.getJSON('test2.json', function(data) {
                    var items = [];
                    $.each(data, function(key, val) {
                        items.push('<li data-theme="c" data-icon="myapp-arrow" class="test1"><a href="#dataviewer" data-transition="slide"><p>' + key + '</p>' + val + '</a></li>');
                    });
                    $('<ul/>', {'data-role' : 'listview','id': 'my-new-list', 'data-divider-theme':'a', 'data-inset': 'false',html: items.join('')}).appendTo('.container');
                $("#my-new-list").listview();               
                });
            });

私を正しい方向に向けてくれたcodanielに感謝します

于 2012-04-25T08:55:12.447 に答える