2011-06-23 27 views
11

Quiero hacer algo cada vez que se carga una página. Es algo que soluciona la apariencia del sitio móvil en diferentes dispositivos, por lo que también debe suceder en las cargas de AJAX.jQuery Mobile - Haz algo en la carga de la página

Por el momento, he probado el enfoque tradicional $(function(){ /*...*/ });, pero eso solo funciona en la primera carga, y no en las posteriores cargas de AJAX.

He estado buscando el evento correcto para enlazar pero estoy fallando bastante duro.

Respuesta

26

Puede utilizar jQuery para unirse a cada "página" (div a configurar con el atributo data-role=page) y utilizar el evento pageshow (hay algunos otros también: pagebeforeshow, pagehide, pagebeforehide).

$(document).delegate('.ui-page', 'pageshow', function() { 
    //Your code for each page load here 
}); 

http://api.jquerymobile.com/pageshow/

Nota: esta respuesta fue escrito para jQuery Mobile 1.0.1, consulte el enlace de documentación anterior para obtener más información.

+0

Ejemplo agradable para esta funcionalidad - http://jsfiddle.net/olli/4rQRb/ – RredCat

+1

pageshow ha quedado obsoleto en 1.4 y eliminado en 1.5. Nota: La activación de este evento está obsoleta a partir de jQuery Mobile 1.4.0. Ya no se activará en 1.5.0. El reemplazo de pageshow es el evento pagecontainershow del widget pagecontainer. En jQuery Mobile 1.4.0, los dos eventos son idénticos, excepto por su nombre y el hecho de que pagecontainershow se activa en el contenedor de páginas, mientras que pageshow se activa en la página. – John

Cuestiones relacionadas