0

JQM v1.1 を使用。ページの 1 つである data-role=page の 1 つで、data-role と data-theme を含む UL タグを宣言しました (複数ページのドキュメント)。

<ul id="dailylistul" data-role="listview" data-theme="d">  

次のようにLIを挿入するコードがあります-

<script type="text/javascript">
$("#dailylisthref").click(function () {
$('#dailylistul').children().remove();
$('#dailylistul').attr('data-role', 'slide');
$('#dailylistul').attr('data-theme', 'd');
var obj = { one:1, two:2, three:3, four:4, five:5 };
  $.each(obj, function(i, val) {
    //console.log("iteration " + val);
     $('#dailylistul').append('<li>' + val + '</li>');
    })
    $.mobile.changePage("#dailylistpage", "slide");
})

$('#dailylistul').attr('data-role', 'listview') が初めて発生しないことを除いて、これは正常に機能します。UL の子に対する remove() は、UL のスタイルも削除します。また、次回コードでリセットされたスタイルは適用されません。これを行う他の方法はありますか。

4

2 に答える 2

0

これを試して

$('#dailylistul li').remove();
var obj = { one:1, two:2, three:3, four:4, five:5 };
$.each(obj, function(i, val) {

 $('#dailylistul').append($('<li>' + val + '</li>'));
});
 $('#dailylistul').listview('refresh');
$.mobile.changePage("#dailylistpage", "slide");
于 2012-05-26T02:41:54.243 に答える
0

最初に、スライドに設定している data-role 属性をリセットするときは、リストビューを意味していると思います。

リストビューの属性をリセットしている理由がわかりません。その内容を削除するだけでよいはずです。

$("#dailylisthref").click(function () {
  $('#dailylistul').empty();
  var obj = { one:1, two:2, three:3, four:4, five:5 };
    $.each(obj, function(i, val) {
    //console.log("iteration " + val);
     $('#dailylistul').append('<li>' + val + '</li>');
    })
    $.mobile.changePage("#dailylistpage", "slide");
})

JQM リストを変更した後 (要素を追加した後)、refresh メソッドを呼び出す必要があります。たとえば、ページが表示される前に呼び出す必要がある場合もあります。

$(document).delegate('#dailylistpage', 'pageshow', function () {
        $('#dailylistul').listview('refresh');
});
于 2012-05-25T15:49:36.397 に答える