2012-05-27 16 views
9

Sto cercando di trovare una soluzione alternativa per aggiornare gli elenchi annidati con la versione 1.1 di jquery Mobile che attualmente ti lascia con una pagina vuota.jQuery Soluzione di aggiornamento elenco nidificato mobile

So che una soluzione esistente è di abilitare pushState ma che rimanda alla radice dell'elenco e avvita con lo stato della cronologia nella successiva vista elenco nidificata.

La soluzione mi è venuta con sottostante non è bella, ma funziona su iOS e Android più recente.

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

}); 

mi rendo conto che pushState e replaceState non sono supportati da tutti i browser e che avrei potuto provare ad usare:

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

invece, ma diventa molto choppier di un'esperienza utente.

Spero che qualcuno possa far luce su cosa si potrebbe fare meglio o come può essere fatto meglio/in modo più affidabile.

+0

Se siete preoccupati dell'affidabilità perché non state usando una versione stabile di JQM? – codaniel

+0

Il mio errore. I 1.1 Come anticiparmi :) – chris

+3

Potresti fornire il codice HTML in modo che possiamo lavorare sulla ricerca di possibili soluzioni alternative? –

risposta

1

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

o

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

A meno che io sono completamente malintesi tua domanda, si dovrebbe essere in grado di utilizzare una delle linee di cui sopra per aggiornare l'elenco che si sta aggiungendo a dove <mySelector> è qualsiasi selettore compatibile con JQuery che restituirà il tuo listview.

1

Questo codice ha funzionato per me:

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

Qui #newlist è l'ID per ul e dei dati è un oggetto.

Problemi correlati