Jquery Mobile动态数据角色无法正常工作

时间:2012-05-25 14:30:06

标签: jquery-mobile

使用JQM v1.1。宣布了一个带有数据角色的UL标签。我的data-role = page之一上的数据主题,这是一个页面(多页面文档)。

<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中的样式。并且下次不会在代码中再次应用重置的样式。还有其他办法吗?

2 个答案:

答案 0 :(得分:0)

首先,当你将数据角色属性设置为幻灯片时,我假设你的意思是listview。

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

这样的东西
$("#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');
});

答案 1 :(得分: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");