2012-07-04 10 views
7

Używam metody jQueryMobile $.mobile.changePage(...), aby przełączyć się na inną stronę w ramach mojego projektu.Definiowanie przejścia powrotnego między zmianami stron

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

Po uruchomieniu tej metody przejście działa idealnie, ale po naciśnięciu przycisku powrotu przeglądarki nie widzę odwrotnej przejścia.

Grałem z niektórymi parametrami opisanymi w http://jquerymobile.com/test/docs/api/methods.html, ale nie miałem szczęścia.

Szczególnie ustawienie reverse:true tylko odwróciło przejście podczas przechodzenia do strony docelowej, ale nadal nie ma przejścia po naciśnięciu przycisku wstecz.


Aktualizacja: Wydaje się, widząc data-rel = „back” załatwia sprawę dla „orginary linki” zdefiniowanych za pośrednictwem <a> -tag ALE co potrzebne jest odpowiednikiem JavaScript podczas wywoływania Funkcja $.mobile.changePage().

+0

Jakiej przeglądarki używasz do testowania? –

+0

@John Safari (iPhone) – Timo

Odpowiedz

0

znalazł.

Jeden z naszych programistów wyłączył wszystkie przejścia powrotne na całym świecie, więc nic dziwnego, że nie zadziałał.

To jest to, czego użył. Usunięcie tej linii rozwiązało problem.

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

Spójrz na tę stronę, http://jsfiddle.net/nachiket/mDTK2/show/light/
Działa dobrze ze mną.

Kliknij (na stronie 1) pokazuje przejście z lewej na prawą, & Przycisk Wstecz (na stronie 2) pokazuje przejście od prawej do lewej.

Źródło: http://jsfiddle.net/nachiket/mDTK2/
Jeśli to nie działa dobrze, niż proszę podziel się przeglądaniem i innymi szczegółami.
Jeśli przykład działa poprawnie, ale nie twój kod, ustaw jsfiddle podświetlając swój problem, aby sprawdzić i zaktualizować kod/odpowiedź.

+0

Tak, tworzenie zwykłego projektu jQM działa dobrze. Wygląda na to, że to zachowanie pojawia się tylko w mojej aplikacji. Niestety kod źródłowy jest poufny. Jaki byłby dobry sposób na debugowanie tego? – Timo

+0

@valmar Powinieneś włączyć konsolę debugowania dla Safari: http://osxdaily.com/2012/05/07/enable-safari-debug-console-ios/ –

2

Dla linków chcesz mieć odwrotne przejście na można użyć data-direction="reverse" z data-rel="back"

Przykład:

<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

Z Twojego komentarza

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

Docs:

Cytat:

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

Tak, ale jak to zrobić z funkcją JavaScript ' $ .mobile.changePage() '? – Timo

+0

zobacz aktualizację proszę –

+0

Nie, to źle. Jak już wspomniałem w moim pierwotnym pytaniu, użycie 'reverse = true' po prostu powie jQM, aby używał back-transition podczas przechodzenia z jednej strony na drugą. Nie wpłynie to na przejście po powrocie do poprzedniej strony. – Timo

Powiązane problemy