2012-07-04 3 views
7

Sto utilizzando il metodo $.mobile.changePage(...) di jQueryMobile per passare a una pagina diversa all'interno del mio progetto.Definizione di una transizione di ritorno tra i cambi di pagina

$.mobile.changePage("#foo", { 
transition:"slide" 
}); 

Quando eseguo questo metodo, la transizione funziona perfettamente, ma quando ho colpito il pulsante di ritorno del browser non vedo passaggio inverso.

Ho giocato con alcuni dei parametri descritti in http://jquerymobile.com/test/docs/api/methods.html ma non ho avuto fortuna.

In particolare, l'impostazione reverse:true ha appena invertito la transizione quando si passa alla pagina di destinazione, ma non c'è ancora alcuna transizione quando premo il pulsante Indietro.


Aggiornamento: Sembra come vedere i dati-rel = "indietro" fa il trucco per "collegamenti orginary" definite tramite il <a> -tag MA quello che mi serve è l'equivalente JavaScript quando si chiama il Funzione $.mobile.changePage().

+0

Che browser usi per testare? –

+0

@John Safari (iPhone) – Timo

risposta

0

Trovato.

Uno dei nostri sviluppatori ha disattivato tutte le transizioni di reso a livello globale, quindi non c'è da stupirsi che non funzioni.

Questo è quello che ha usato. Rimozione di quella linea ha fatto il trucco.

$.mobile.changePage.defaults.transition = "none"; 
2

Dai un'occhiata a questa pagina, http://jsfiddle.net/nachiket/mDTK2/show/light/
Funziona bene con me.

Fare clic su (a pagina 1) mostra la transizione da sinistra a destra, & Il pulsante Indietro (a pagina 2) mostra la transizione da destra a sinistra.

Fonte: http://jsfiddle.net/nachiket/mDTK2/
Se non funziona correttamente, si prega di condividere la tua navigazione e altri dettagli.
Se l'esempio funziona correttamente, ma non il codice, crea un jsfiddle che evidenzia il tuo problema, così posso controllare e aggiornare codice/risposta.

+0

Sì, la creazione di un semplice progetto jQM funziona correttamente. Sembra che questo comportamento venga visualizzato solo nella mia app. Sfortunatamente il codice sorgente è confidenziale. Quale sarebbe una buona pratica per eseguire il debug di questo? – Timo

+0

@valmar È necessario abilitare la console di debug per Safari: http://osxdaily.com/2012/05/07/enable-safari-debug-console-ios/ –

2

Per i collegamenti che si desidera avere il passaggio inverso in poi è possibile utilizzare data-direction="reverse" con data-rel="back"

Esempio:

<div data-role="page" > 
    <div data-role="header"><h3> Header </h3> </div> 
    <div data-role="content" >  
     <a href="#page2" data-role="button" data-transition="slide">Page 2</a> 
    </div> 
</div> 

<div data-role="page" id="page2"> 
    <div data-role="header"><h3> Header </h3> </div> 
    <div data-role="content" >  
     <a href="#" data-rel="back" data-role="button" data-direction="reverse" >Back</a> 
    </div> 
</div>​ 

jsFiddle:

Docs :

UPDATE

Dal tuo commento

"Yeah, but how do I do that with the JavaScript function $.mobile.changePage()?" 

Documenti:

Citazione:

Properties: 
    reverse (boolean, default: false) Decides what direction the transition will run when showing the page. 
+0

Sì, ma come farlo con la funzione JavaScript ' $ .mobile.changePage() '? – Timo

+0

vedi aggiornamento per favore –

+0

No, è sbagliato. Come ho già detto nella mia domanda iniziale, usando 'reverse = true' dirò semplicemente a jQM di usare la transizione all'indietro quando si passa da una pagina all'altra. Non influenzerà la transizione quando si torna a una pagina precedente. – Timo