2011-07-23 20 views
5

Tengo una lista que se está creando desde una llamada $ .ajax. La inyección de datos parece estar funcionando, pero el HTML no está recogiendo los estilos de JQueryMobile para listView. ¿Alguien puede ofrecer alguna idea de por qué esto podría estar pasando?JQuery Mobile Dynamic List de Ajax Call

Aquí está la llamada 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>"; 
      } 
     }); 
     } 

Este código muestra la información:

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

     } 
    } 

Respuesta

10

Asegúrese de actualizar el elemento de la lista una vez que haya pobladas, de lo contrario, como se haya -encontrado los estilos JQM no se les aplican:

SomeData_list.listview('refresh'); 
+0

Ben Gracias por la respuesta. ¿Dónde lo ubicaría? Intenté esto antes sin suerte. ¿Debería esto estar en la lista en el bucle? –

+0

Como dije antes, no invoque esto hasta que haya terminado de agregar elementos a la lista, es decir, ** después de ** el ciclo. – Ben

0
$('#list').trigger("create");... 
Cuestiones relacionadas