Ho una PhoneGap & jQuery App mobile che funziona bene su Android e sul web. Su iOS ricevo risultati imprevisti, che sembrano causati dal fatto che l'evento document.pageinit a cui collego il gestore per la maggior parte dei processi dell'app viene generato due volte.Documento pageinit si attiva più di una volta su iOS (jQueryMobile)
No, non l'ho associato due volte. No, non ho usato document.ready. Sì, l'ho legato al documento, all'inizio della sceneggiatura e non in altre funzioni.
$(document).on('pageinit',function(event){
alert(' Pageinit on document');
//Some more code
})
La prima volta che si accende, lo schermo di avvio viene ancora visualizzato. A questo punto, durante il test su un MacBook Pro con XCode, la console non è nemmeno disponibile: il messaggio precedente non è apparso nella console quando ho usato console.log.
Seconda volta, gli incendi poco dopo jQueryMobile ha creato la prima pagina.
Che cosa sta causando questa doppia cottura e cosa posso fare al riguardo?
EDIT: Ho notato in seguito che quella pagina non si attiva solo una seconda volta, ma ogni volta che apro un nuovo data-role = 'page' div. Vedi la mia risposta qui sotto.
Thaaaaank! Stavo cercando la soluzione per gli ultimi minuti, Google non dà nulla per "pageinit chiamato due volte", e il tuo ".one()" è la soluzione ideale. Vorrei alzare il limite di dieci se potessi :) – PiotrK
Sorprendentemente, ho notato questo comportamento quando utilizzo il codice della mia app nei browser desktop (IE10 e Chrome/Windows) e non in iOS. Questa soluzione suggerita ha aiutato anche quei casi. Grande suggerimento. Grazie! –