2012-06-15 7 views
6

Estoy usando jQuery mobile en una plantilla de página única (cada página es un archivo html separado). Quiero precomprobar una página que carga contenido a través de Ajax. Pongo el código de captación previa de la función document.ready() en la primera páginajQuery móvil recuperación previa de una página que carga contenido a través de Ajax

$.mobile.loadPage("my-projects.html", { showLoadMsg: false }); 

llamada AJAX dentro de la función document.ready() de la segunda página, que quiero captación previa. Esta llamada ajax no está ocurriendo cuando preftecháramos esa página. Hay una manera de lograr esto. Por favor, ayuda

+0

Creo que tienes que hacer esto usando los eventos de phonegap en lugar de los eventos de jQuery-mobile. http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html – Th0rndike

Respuesta

1

jQuery Mobile ha Prefetching construido en el derecho, todo lo que tiene que hacer es añadir el atributo data-prefetch a un enlace que enlaza con una página remota:

<a href="prefetchThisPage.html" data-prefetch> ... </a> 

Fuente: http://jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html

En un sentido general, cuando ingresa una página a través de AJAX, la función document.readyno disparará. Sin embargo, puede utilizar eventos de jQuery Mobile Page, como pageinit. Por ejemplo:

$(document).delegate('#my-page-id', 'pageinit', function() { 
    $.mobile.loadPage("my-projects.html", { showLoadMsg: false }); 
}); 
+0

Como estoy usando cada página es un archivo html por separado # my-page-id no tiene relevancia aquí. Tampoco hay problema con "$ .mobile.loadPage (" my-projects.html ", {showLoadMsg: false});" se está disparando correctamente. El problema es con la llamada ajax que está en la página que quiero precapturar. No se está disparando cuando prefundes happenings –

+0

Deberías leer esto, fíjate en el cuadro amarillo: http://jquerymobile.com/demos/1.1.0/docs /api/events.html. Ahora en jQuery Mobile ya que todas las páginas de forma predeterminada se introducen en el DOM a través de AJAX, el uso de una identificación para vincular a una página específica ** ciertamente tiene relevancia **. Usar código como el que mostré en mi respuesta nos permite ejecutar código específico para páginas específicas mientras mantenemos una fuente para nuestro JS (puede poner su JS en un archivo e incluirlo en el encabezado de cada página para que esté listo para cada página). Y su problema es 'document.ready', no lo use para sitios jQuery Mobile. No funcionará como esperabas. – Jasper

Cuestiones relacionadas