Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2012, 05:14
chronique
 
Fecha de Ingreso: junio-2012
Ubicación: Catalunya
Mensajes: 7
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta ¿Como llamar a una funcion javascript correctamente en jquery mobile?

Hola.

En primer lugar, es mi primer mensaje pero me habré leído cientos de post de forosdelweb, muchos de los cuales me han dado solución a muchas de las problemáticas habituales que he ido encontrando.

Bien, os comento.

Tengo una pagina web para mobil (un panel de clientes) desarrollado con Jquery mobile. Todo funciona correctamente, me carga funciones, etc... a excepción de que aquellas funciones que carga a posteriori, no les aplica el estilo CSS.

Por ejemplo, datos.html tiene un body onload=funcion... que llama a la función y lo carga en el div=datos.

Esto lo hace bien, pero no aplica el estilo al contenido del div.

CONOZCO LA RAZON PROBLEMA:
Me he estado informando al respecto, leyendo multitud de foros de jquerymobile etc...y el problema viene derivado de la forma en que Jquery mobile carga la DOM. Básicamente es algo (si no entendí mal) relacionado con que la DOM y los estilos los carga la primera vez, por lo que cuando cargas justo después una función, no le aplica los estilos CSS, aunque si el contenido en texto plano, sin formato.

LA SOLUCIÓN QUE SE PROPONE
Tanto en los foros de jquerymobile como en su documentación, indican que las funciones deben llamarse como eventos, en vez de $(document).load utilizar algo de este estilo: $(document).live('pageinit',function()){


MI PROBLEMA
Mi problema es que yo siempre he definido las funciones y las llamadas a las mismas como en su dia las aprendí. Que es:

- En un archivo .js creo las funciones con function(){...};
- En el html que necesito una la llamo con un onload= onclick= etc..dependiendo de lo que precise.

Ejemplo de como lo hago yo:
function aviso()
alert ('aviso de forosdelweb');

y la llamaria con un body onload="aviso()" por ejemplo.

Por tanto, se trata basicamente de que no se escribir esas mismas funciones con el formato de $(document).live('pageinit',function..). En un foro de jquery mobile explican, por ejemplo, esto:

$(document).live ('pageinit',function(event){
alert( 'aviso de forosdelweb' );
});

Lo he probado con un simple alert dentro pero no aparece, por lo que entiendo que algo hago mal y debe de ser una tontería de cómo se debe escribir.

Me gustaría, por favor, que alguien me hiciese un simple ejemplo de como pasar una función que yo llamo a otra con "el formato" correcto.

Me desatascará la finalización de la web, y mucho!

Muchas gracias, y felicidades a un tal caricatos, en los últimos meses sus post me han solucionado muchísimas dudas, y he visto que es muy activo por aquí.