La risposta di cui sopra mi ha aiutato molto, L'ho modificato un po 'per il mio bisogno, visto che sto usando themeroller e mi aspetto di avere più di 20 temi. Ecco quello che ho fatto
function updateTheme(newTheme) {
//alert("In refresh");
var rmbtnClasses = '';
var rmhfClasses = '';
var rmbdClassess = '';
var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" ];
$.each(arr,function(index, value){
rmbtnClasses = rmbtnClasses + " ui-btn-up-"+value + " ui-btn-hover-"+value;
rmhfClasses = rmhfClasses + " ui-bar-"+value;
rmbdClassess = rmbdClassess + " ui-body-"+value;
});
// reset all the buttons widgets
$.mobile.activePage.find('.ui-btn').not('.ui-li-divider').removeClass(rmbtnClasses).addClass('ui-btn-up-' + newTheme).attr('data-theme', newTheme);
// reset the header/footer widgets
$.mobile.activePage.find('.ui-header, .ui-footer').removeClass(rmhfClasses).addClass('ui-bar-' + newTheme).attr('data-theme', newTheme);
// reset the page widget
$.mobile.activePage.removeClass(rmbdClassess).addClass('ui-body-' + newTheme).attr('data-theme', newTheme);
// target the list divider elements, then iterate through them and
// change its theme (this is the jQuery Mobile default for
// list-dividers)
$.mobile.activePage.find('.ui-li-divider').each(function(index, obj) {
$(this).removeClass(rmhfClasses).addClass('ui-bar-' + newTheme).attr('data-theme',newTheme);
})
Ora, quando ottengo il nuovo tema dal server tramite JSON mi basta chiamare questo metodo con il nuovo tema come param.
saluti Rajesh J
I m utilizzando list-divisore nella mia applicazione staticamente sta cambiando, ma dinamicamente non cambia che è solo problema. –
@kanna Ho aggiornato la mia risposta, 'data-role =" list-divider "' s richiede un po 'di logica per farli bene, ma penso che la mia risposta sia piuttosto completa: http://jsfiddle.net/VNXb2/7/ – Jasper
@kanna Un'altra idea, se si modifica il tema di un widget prima che venga inizializzato, verrà inizializzato correttamente nel tema desiderato. Se esegui il binding all'evento 'pageInit', i widget non devono essere inizializzati e puoi modificare il tema della pagina o qualsiasi elemento all'interno della pagina. – Jasper