Tengo una aplicación Phonegap & jQuery Mobile que funciona muy bien en Android y en la web. En iOS estoy obteniendo resultados inesperados, que parecen ser causados por el hecho de que el evento document.pageinit al que enlazo el controlador para la mayoría de los procesos de la aplicación se activa dos veces.Documento pageinit se activa más de una vez en iOS (jQueryMobile)
No, no lo vinculé dos veces. No, no usé document.ready. Sí, lo vinculé al documento, al comienzo del guión y no dentro de ninguna otra función.
$(document).on('pageinit',function(event){
alert(' Pageinit on document');
//Some more code
})
La primera vez que se dispara, la pantalla de inicio todavía se muestra. En este punto, mientras probaba en un MacBook Pro con XCode, la consola no está disponible: el mensaje anterior no apareció en la consola cuando usé console.log.
Segunda vez, el fuego poco después de que jQueryMobile haya creado la primera página.
¿Qué está causando esta doble cocción y qué puedo hacer al respecto?
EDITAR: Me di cuenta más adelante en esa página, no solo se dispara por segunda vez, sino que cada vez que abro una nueva función data-role = 'page' div. Ver mi respuesta a continuación.
Thaaaaank you! Estuve buscando una solución para los últimos minutos, Google no da nada por "pageinit llamado dos veces", y su '.one()' es la solución ideal. Me gustaría votar por diez si pudiera :) – PiotrK
Sorprendentemente, he visto este comportamiento cuando uso el código de mi aplicación en los navegadores de escritorio (IE10 y Chrome/Windows) y no en iOS. Esta solución sugerida también ayudó a esos casos. Gran sugerencia ¡Gracias! –