2011-10-11 16 views

Odpowiedz

13

aboutPage powinien być identyfikatorem strony (np.div z data-role="page"). live() dołącza zdefiniowaną funkcję zawierającą alert do pageinit zdarzenia z aboutPage. pageinit jest wyzwalane na stronie po zainicjowaniu strony.

Tak w skrócie Co robi Twój kod jest

będzie wykonać powiadomienie oświadczenie gdy aboutPage jest inicjowany

strona może zostać zainicjowana nawet jeśli nie jest w view.So nawet przed przejdziesz do tej strony, zostanie wywołana pageinit elementu div.Jeśli ładujesz inny plik HTML, jako nową stronę, zostanie wywołana tylko wtedy, gdy załadujesz tę stronę do widoku. Tak, w twoim przypadku, jeśli chcesz zrobić coś, gdy zobaczysz swojego diva, możesz spróbować e pagebeforeshow i pageshow. pagebeforeshow zostanie wyzwolony na nowej stronie przed rozpoczęciem animacji i pageshow po zakończeniu animacji.

+0

Yup. Tak właśnie się domyślałem i próbowałem podłączyć wydarzenie pageinit na div z danymi-role = "page", ale z jakiegoś powodu metoda ta nie jest wywoływana po pierwszym przejściu na stronę. Kiedy uderzę odświeżam, metoda zostaje wywołana. –

+0

Edytował odpowiedź, aby wyjaśnić na ten temat.Nadzieję, że pomaga. – user700284

+3

Wyliczyłem to. Każda strona zawierała własny javascript, który podpinał zdarzenia "pagehow". Jednak używałem $ .mobile.changePage, które ładuje tylko element div z danymi-role = page i nic więcej na tej stronie (włączając wbudowany javascript) nie jest wykonywane. Oto odpowiedź, która pomogła mi http://stackoverflow.com/questions/7449402/jquery-mobile-mobile-changepage-not-loading-external-js-files/7449731#7449731 –