2012-05-25 23 views
0

使用JQM v1.1。已經在我的data-role =頁面之一上聲明瞭一個帶有數據角色& data-theme的UL標籤,該頁面是其中一個頁面(多頁面doc)。Jquery Mobile動態數據角色不起作用

<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( '數據的作用', 'listview')在第一次後不會發生。 UL的孩子們的remove()也會刪除UL中的樣式。下一次它不會在代碼中再次應用樣式。有沒有其他的方式來做到這一點。

回答

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'); 
}); 
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");