2012-04-18 10 views
13

Esta es la forma en que estoy tratando de enganchar en el caso mobileinit:¿Cómo vincular el evento "mobileinit" en jQuery Mobile?

$(document).bind("mobileinit", function() { 
    console.log("Mobile init"); 
}); 

Pero esto no funciona en Chrome (versión más reciente), v0.9.1 Ripple y en un BlackBerry Bold 9790 OS7.0 correr .

Nota: También intenté usar .on() en lugar de .bind() pero no tuve suerte. Ambas versiones móviles de jQuery (1.0.1 y 1.1.0) fallaron.

Respuesta

45

Lo he usado y hace trabajo.

¿Es posible que algo más esté rompiendo el guión o el móvil no se está disparando?

¿Chrome fire mobileinit?

Acabo de encontrar un código que utilicé en jQuery Mobile 1.0 y acabamos de actualizar a 1.1.0 y funciona.

También se asegura de incluir también ol 'jQuery normal, ¿verdad?

jQueryMobile's docs do it, así que estoy seguro de que funciona. Algo más debe estar mal. Lo siento, no soy de mucha ayuda. ¿Tienes más información? O prueba con un dispositivo diferente.

[editar] En esa misma página uno mismo, que dice: "Debido a que el evento mobileinit se activa de inmediato, tendrá que vincular a su controlador de eventos antes de cargar jQuery Mobile. Enlace a los archivos de JavaScript en el siguiente orden : "

<script src="jquery.js"></script> 
<script src="custom-scripting.js"></script> <!-- Note your script before jqm --> 
<script src="jquery-mobile.js"></script> 

Parece que el orden del script puede ser importante.

+3

Y ese archivo 'custom-scripting.js' almacenaría su controlador de eventos' mobileinit' por lo que está obligado por el momento jQuery Mobile i nitializes (y dispara el evento 'mobileinit'). – Jasper

+0

Lo sabía, habiéndolo leído en los documentos, pero todavía me sorprendió. Gracias por esta publicación. Me ahorró horas! –

+0

@DaveR Sé que esto es un total aparte, pero no he trabajado mucho con jQuery Mobile desde abril y el mismo día que comentas, estoy trabajando en la compilación de una aplicación con PhoneGap realizada en jQM. De todos modos, ¡me alegro de poder ayudar! – CWSpear

5

Aquí es otro ejemplo simple que trabaja conmigo (para iOS y Android)

<script type="text/javascript" src="files/resources/lib/jquery/jquery-1.8.2.js"> </script> 
<script type="text/javascript"> 
$(document).bind("mobileinit", function() 
       { 
       if (navigator.userAgent.toLowerCase().indexOf("android") != -1) 
       { 
       // your logic here 
       $.mobile.defaultPageTransition = 'none'; 
       $.mobile.defaultDialogTransition = 'none'; 
       } 
       if (navigator.userAgent.toLowerCase().indexOf("msie") != -1) 
       { 
       // your logic here 
       $.mobile.allowCrossDomainPages = true; 
       $.support.cors = true; 
       } 
       }); 
</script> 
<script type="text/javascript" src="files/resources/lib/jquerymobile/1.3.2/jquery.mobile-1.3.2.js"></script> 
  1. incluyen el archivo principal de jQuery
  2. unen mobileinit antes de jQuery Mobile
  3. incluyen js jQuery Mobile presentar
Cuestiones relacionadas