2011-10-28 18 views
6

Con jQuery Mobile posso creare una pagina utilizzando un tema personalizzatoModificare i dati-tema di default da jQuery Mobile

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

Ora questo funziona, ma richiede che aggiungo questa linea in ciascuna delle mie pagine e every- volta aggiungo una nuova pagina. Ho provato ad aggiungere data-theme="s" al tag body ma questo non ha alcun effetto. C'è un modo per fare questo e quindi impostarlo manualmente per pagina?

risposta

8

Dovresti farlo a livello di codice, AFAIK.

Qualcosa sulla falsariga di:

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

Ora, dal momento che non v'è alcun gancio centralizzata - si dovrà fare la linea simile per tutte le opzioni del tema ci sono:

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

e così sopra.

non ho un elenco di tutti loro, ma un rapido sguardo attraverso le jquery.mobile-1.0rc1.js ricerca di .prototype.options. dimostra tutti questi:

$.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 

così mi sembra che puoi andare con questi e scoprire di più man mano che vai. Nota: che non tutti sono creati in questo modo: alcuni sono costruiti dinamicamente nel codice. Cerca la stringa Theme per vedere cosa intendo.

Aggiornamento

$.mobile.page.prototype.options.theme dovrebbe essere aggiornato, come pure - in base a commento di Moak di seguito.

+1

OK, grazie, lo esaminerò e riferirò. Questa è una soluzione fattibile ma sembra così sciocco che non ci sarebbe un metodo implementato per questo. – Moak

+0

insieme a '$ .mobile.page.prototype.options.theme' ha funzionato – Moak

+1

In 1.4.0 (non sicuro delle versioni precedenti), è necessario eseguire questa operazione dopo aver caricato jquery.js e PRIMA jquery.mobile * .js –

1

Quanto segue ha funzionato per me. Assicurati che venga chiamato dopo che JQM è stato inizializzato.

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