9

Ich versuche, eine Problemumgehung für das Aktualisieren von geschachtelten Listen mit Version 1.1 von Jquery Mobile, die Sie derzeit mit einer leeren Seite verlassen.jQuery Mobile geschachtelte Liste Refresh-Lösung

Ich weiß, dass eine vorhandene Lösung ist, PushState zu aktivieren, aber das Sie zurück zum Stamm der Liste sendet und mit dem Verlaufsstatus in Ihrer nächsten geschachtelten Listenansicht verschraubt.

Die Lösung, die ich kam mit unten ist nicht schön, aber funktioniert auf iOS und neueren Android.

$(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"); 

}); 

Ich weiß, dass pushstate und replaceState werden nicht von jedem Browser unterstützt und dass ich versuchen könnte zu verwenden:

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

statt, aber es wird viel choppier eines User Experience.

Ich hoffe, jemand könnte etwas Licht auf etwas, was besser gemacht werden könnte oder wie es besser/zuverlässiger getan werden kann.

+0

Wenn Sie sich Sorgen um die Zuverlässigkeit machen, warum verwenden Sie keine stabile Version von JQM? – codaniel

+0

Mein Fehler. Ich dachte 1.1 Ich komme voran :) – chris

+3

Könnten Sie HTML-Code zur Verfügung stellen, damit wir an der Suche nach möglichen Problemumgehungen arbeiten können? –

Antwort

1

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

oder

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

Es sei denn, ich bin völlig falsch zu verstehen, Ihre Frage, sollten Sie in der Lage sein, über eine der beiden Linien zu verwenden, um die Liste zu aktualisieren, die Sie hinzufügen wo <mySelector> ist was JQuery-kompatiblen Selektor, der Ihre Listview zurückgibt.

1

Dieser Code für mich gearbeitet:

$("#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"); 

Hier #newlist die ID für ul ist und Daten ist ein Objekt.