2011-10-28 12 views
6

con jQuery Mobile I puede crear una página usando un tema personalizadoCambiar el tema por defecto de datos de jQuery Mobile

<div data-role="page" data-theme="s" id="home">... 

Ahora esto funciona, pero requiere que añadir esta línea en cada una de mis páginas y every- vez que agrego una nueva página. Traté de agregar data-theme="s" a la etiqueta del cuerpo, pero esto no tiene ningún efecto. ¿Hay alguna forma de hacer esto diferente luego de configurarlo manualmente por página?

Respuesta

8

Tendría que hacerlo programáticamente, AFAIK.

Algo a lo largo de las líneas de:

$(document).bind("mobileinit", function() 
{ 
    ... 
    $.mobile.page.prototype.options.contentTheme = "z"; //your theme 
    ... 
}); 

Ahora, ya que no hay gancho centralizado - usted tiene que hacer la línea similar para todas las opciones de temas que hay:

$.mobile.page.prototype.options.headerTheme 
$.mobile.page.prototype.options.footerTheme 

y así en.

no tengo una lista de todos ellos, pero una mirada rápida a través de los jquery.mobile-1.0rc1.js en busca de .prototype.options. revela los siguientes:

$.mobile.page.prototype.options.backBtnTheme 
$.mobile.page.prototype.options.headerTheme 
$.mobile.page.prototype.options.footerTheme 
$.mobile.page.prototype.options.contentTheme 
$.mobile.listview.prototype.options.filterTheme 

por lo que me parece que puedes ir con esto y descubrir más sobre la marcha. Nota que no todos ellos se crean así; algunos se construyen dinámicamente en el código. Busque la cadena Theme para ver a qué me refiero.

actualización

$.mobile.page.prototype.options.theme deben actualizarse también - basado en el comentario de Moak a continuación.

+1

Bien, gracias, lo investigaré e informaré. Esta es una solución viable pero parece tan tonto que no existiría un método implementado para esto. – Moak

+0

junto con '$ .mobile.page.prototype.options.theme' esto funcionó – Moak

+1

En 1.4.0 (no estoy seguro de las versiones anteriores), debe hacer esto después de cargar jquery.js y ANTES de jquery.mobile * .js –

1

Lo siguiente funcionó para mí. Solo asegúrate de que se invoque después de que JQM se haya inicializado.

$.mobile.page.prototype.options.theme = "b"; 
Cuestiones relacionadas