La respuesta anterior me ayudó mucho, Lo modifiqué un poco para mi necesidad, ya que estoy usando themeroller y espero tener más de 20 temas. Aquí es lo que he hecho
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);
})
Ahora cuando llegue el nuevo tema desde el servidor a través de JSON acabo de llamar a este método con el nuevo tema como parámetro.
Saludos Rajesh J
I m utilizando la lista divisor en mi solicitud de forma estática que está cambiando de forma dinámica, pero eso no cambia eso es sólo un problema. –
@kanna Actualicé mi respuesta, 'data-role =" list-divider "' s requiere un poco de lógica para hacerlo bien, pero creo que mi respuesta es bastante completa: http://jsfiddle.net/VNXb2/7/ – Jasper
@kanna Otra idea, si cambia el tema de un widget antes de que se inicialice, se inicializará correctamente en el tema que elija. Si se vincula al evento 'pageInit', los widgets no se deben inicializar y puede cambiar el tema de la página o cualquier elemento dentro de la página. – Jasper