2011-10-11 17 views

risposta

13

aboutPage deve essere l'ID della pagina (ad esempio con data-role="page"). live() allega la funzione definita che contiene lo alert all'evento pageinit di aboutPage. pageinit viene attivato in una pagina quando la pagina viene inizializzata.

Così, in breve Che cosa il vostro codice non fa altro che

che verrà eseguire l'istruzione avviso quando aboutPage viene inizializzato

La pagina potrebbe essere inizializzato anche se non è in view.So anche prima vai a quella pagina, il pageinit del div verrà attivato. Se stai caricando un altro file html come la nuova pagina pageinit per quella pagina verrà attivata solo quando si carica quella pagina in view.So, nel tuo caso se vuoi fare qualcosa quando il tuo div viene visualizzato, puoi provarlo e pagebeforeshow e pageshow. pagebeforeshow verrà attivato sulla nuova pagina prima dell'inizio dell'animazione e pageshow dopo che l'animazione è finita.

+0

Sì. Questo è quello che ho indovinato sarebbe e ho provato ad agganciare l'evento pageinit su div con data-role = "page" ma per qualche motivo il metodo non viene richiamato la prima volta che passo a una pagina. Quando clicco, il metodo viene chiamato. –

+0

Modificato la risposta per spiegare a riguardo. Ciò aiuta. – user700284

+3

Capito. Ogni pagina aveva il proprio javascript per collegare eventi "pageshow". Comunque stavo usando $ .mobile.changePage che carica solo un div con data-role = page e nient'altro su quella pagina (incluso inline javascript) viene eseguito. Ecco la risposta che mi ha aiutato http://stackoverflow.com/questions/7449402/jquery-mobile-mobile-changepage-not-loading-external-js-files/7449731#7449731 –