0

使用 JQM v1.1。在我的 data-role=page 之一上声明了一个带有 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

首先,当您将数据角色属性设置为滑动时,我假设您的意思是列表视图。

那就是说我不确定你为什么要重置列表视图上的属性,你应该能够删除它的内容,比如

$("#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 列表后(添加元素后),您需要调用它的刷新方法。您可能还需要在页面显示之前调用它,例如

$(document).delegate('#dailylistpage', 'pageshow', function () {
        $('#dailylistul').listview('refresh');
});
于 2012-05-25T15:49:36.397 回答
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 回答