2011-07-23 45 views
5

Tôi có một danh sách đang được tạo từ một cuộc gọi $ .ajax. Việc chèn dữ liệu dường như đang hoạt động, nhưng HTML không chọn kiểu dáng JQueryMobile cho listView. Bất cứ ai có thể cung cấp bất kỳ cái nhìn sâu sắc là tại sao điều này có thể xảy ra?Danh sách động di động JQuery từ cuộc gọi Ajax

Đây là cuộc gọi Ajax:

function getF(){ 
     // Show a loading message 
     var SomeData_list = document.getElementById("SomeData_list"); 
     SomeData_list.innerHTML = "<li>Loading...</li>"; 

     var gUrl = "SomeData_list.php?; 
     // Do the ajax call 
     $.ajax({ 
      url: gUrl, 
      // Callback (onsuccess) 
      success: function(d, status, req){ 
      var json = eval('(' + d + ')'); 
      showSomeData(json); 
      }, 
      // Error handler 
      error: function(req, status, err){ 
      // Alert the user that something went wrong 
      var group_list = document.getElementById("group_list"); 
      SomeData_list.innerHTML = "<li>An error occured. Conversations could not be loaded<br>"+status + ": " + err + "</li>"; 
      } 
     }); 
     } 

Mã này Hiển thị các thông tin:

function showSomeData(json){ 
     var SomeData_list = document.getElementById("SomeData_list"); 
    SomeData_list.innerHTML = ""; 
    var dt =json.results; 
     if (dt.length <= 0){ 
     SomeData_list.innerHTML += "<li>Error Message.</li>"; 
     } 

     else{ 
      for (var i=0; i<dt.length; i++){ 
      SomeData_list.innerHTML += "<ul data-role='listview' data-theme='d'><li class=\"data-role='listview' data-theme='d'\"><a href='index.html'> <img src='photo.png' width='70' /><h3>Some Stuff Here</h3><p>213</p></a></li></ul>"; 
     } 

     } 
    } 

Trả lời

10

Hãy chắc chắn để làm mới các yếu tố danh sách khi bạn đã cư nó, nếu không, như bạn đã đã tìm thấy — các kiểu jQM không được áp dụng:

SomeData_list.listview('refresh'); 
+0

Ben Cảm ơn vi đa trả lơi. Tôi sẽ đặt nó ở đâu? Tôi đã thử điều này trước đây mà không có may mắn. Điều này có nên được liệt kê trong vòng lặp không? –

+0

Như tôi đã nói ở trên, đừng gọi điều này cho đến khi bạn hoàn thành việc thêm các mục vào danh sách, nghĩa là ** sau ** vòng lặp. – Ben

0
$('#list').trigger("create");... 
Các vấn đề liên quan