Ich bin relativ neu bei jQuery-Mobile und versuche zu verstehen, was passiert, wenn eine Seite oder ein Dialog geladen wird.
Ich habe eine kleine Reihe von Dateien erstellt, um die Eigenartigkeit zu veranschaulichen, die ich sehe. Bitte siehe https://github.com/kanesee/jqm-event
Das einfache Beispiel hat nur eine Index-Seite, die Hallo Welt ausgibt. Es gibt eine Schaltfläche, die einen Dialog öffnet, indem eine andere Seite namens dialog.html geöffnet wird. Ich gebe aus, wann immer eine der Seiten ein pageshow- oder pagehide-Ereignis auslöst.
Dies ist die Abfolge der Aktionen.
- Öffne index.html: (index's pageshow wird wie erwartet ausgelöst)
- Klicke auf den Dialog-Link und der Dialog erscheint: (dann werden folgende Ereignisse ausgelöst: index pagehide, dialog pagehide, index pageshow, dialog pageshow)
- Schließe den Dialog: (index pagehide, dialog pagehide, index pageshow, dialog pageshow)
Ich verstehe nicht, warum diese Abfolge ausgelöst wird, wenn der Dialog geöffnet wird. Ich verstehe index pagehide, da wir aus der Index-Seite herausgehen. Bin mir nicht sicher, warum anschließend dialog pagehide ausgelöst wird. Nicht sicher, warum index pageshow ausgelöst wird. Verstehe warum dialog pageshow zuletzt ausgelöst wird.
Ich verstehe auch nicht, warum die Abfolge während des Schließens des Dialogs ausgelöst wird. Bin mir nicht sicher, warum index pagehide ausgelöst wird. Ich verstehe, warum dialog pagehide ausgelöst wird und dann warum index pageshow ausgelöst wird. Bin mir nicht sicher, warum dialog pageshow am Ende erneut ausgelöst wird.
Wenn jemand erklären kann, warum diese eigenartige Abfolge von Ereignissen passiert, würde ich es zu schätzen wissen. Ich habe mir dieses Sequenzdiagramm angesehen, bin mir aber nicht sicher, ob ich es vollständig verstehe: http://bradbroulik.blogspot.co.nz/2011/12/jquery-mobile-events-diagram.html