2012-05-27 15 views
9

Estoy tratando de encontrar una solución para actualizar listas anidadas con la versión 1.1 de jquery Mobile que actualmente le deja una página en blanco.Solución de actualización de lista anidada de jQuery Mobile

Sé que una solución existente es habilitar pushState pero que lo envía de vuelta a la raíz de la lista y se atornilla con el estado del historial en su próxima vista de lista anidada.

La solución que surgió con a continuación no es bonita pero funciona en iOS y Android más reciente.

$(document).bind("mobileinit", function(){ 

var urlEx = '#&ui-page=5-0'; //ending of nested list url 

if (window.location.href.indexOf(urlEx) != -1){ 

    history.replaceState("", "0", "index.php"); 
    setTimeout("window.location.href='https://FULLURL#/FULLURL&ui-page=5-0'",100); 
} 

window.history.pushState("", "0", "index.php"); 

}); 

que dan cuenta de que pushState y replaceState no son compatibles con todos los navegadores y que yo podría tratar de usar:

window.location.href = window.location.href.substring(0,window.location.href.indexOf('#')); 

lugar, pero se vuelve mucho más entrecortada de una experiencia de usuario.

Espero que alguien pueda arrojar algo de luz sobre lo que podría hacerse mejor o cómo se puede hacer mejor/de manera más confiable.

+0

Si le preocupa la fiabilidad, ¿por qué no utiliza una versión estable de JQM? – codaniel

+0

Mi error. I miento 1.1 Avanzar sobre mí mismo :) – chris

+3

¿Podría proporcionar un código HTML para que podamos trabajar para encontrar posibles soluciones? –

Respuesta

1

$("#<mySelector>").listview("refresh");

o

$("#<mySelector>").refresh("listview");

a menos que esté completamente malentendidos su pregunta, usted debería ser capaz de utilizar cualquiera de las líneas anteriores para actualizar la lista que se va a añadir donde <mySelector> es el selector compatible con JQuery que devolverá su vista de lista.

1

Este código trabajó para mí:

$("#newList").append("<li class='ui-li-desc'><div><b>"+data[i].Title+":</b></div><small><div class='ui- li-desc'>"+data[i].Content+"</div></small></li>"); 

$("#newList").listview("refresh"); 

Aquí #newlist es el ID para ul y datos es un objeto.

Cuestiones relacionadas