2011-10-28 12 views
6

z jQuery Mobile możesz utworzyć stronę używając motywu niestandardowegoZmiana domyślnego danych-theme z jQuery Mobile

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

Teraz to działa, ale wymaga, aby dodać tę linię w każdym z moich stron i every- czas dodaję nową stronę. Próbowałem dodać data-theme="s" do znacznika body, ale nie ma to żadnego wpływu. Czy jest jakiś sposób na zrobienie tego innego, a następnie ustawienie go ręcznie na stronie?

Odpowiedz

8

Będziesz musiał to zrobić programowo, AFAIK.

Coś wzdłuż linii:

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

Teraz, ponieważ nie ma scentralizowanego haczyk - trzeba będzie zrobić podobną linię do wszystkich opcji tematycznych znajdują się:

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

i tak na.

nie mam listę wszystkich z nich, ale szybkie spojrzenie przez jquery.mobile-1.0rc1.js poszukujących .prototype.options. ujawnia te:

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

więc wydaje mi się, że możesz iść z tymi i odkrywać więcej, gdy idziesz. Notatka że nie wszystkie z nich są tworzone w ten sposób - niektóre są budowane dynamicznie w kodzie. Poszukaj ciągu Theme, aby zobaczyć, co mam na myśli.

Aktualizacja

$.mobile.page.prototype.options.theme powinny być aktualizowane, a także - na podstawie komentarza Moak jest poniżej.

+1

OK, dziękuję, zajrzę do niego i złożę raport. Jest to wykonalne rozwiązanie, ale wydaje się tak głupie, że nie byłoby metody wdrożone w tym celu. – Moak

+0

wraz z '$ .mobile.page.prototype.options.theme' działał – Moak

+1

W wersji 1.4.0 (nie jestem pewien poprzednich wersji), musisz to zrobić po załadowaniu plików jquery.js i PRZED jquery.mobile * .js –

1

Następujące pracował dla mnie. Po prostu upewnij się, że jest wywoływana po zainicjowaniu JQM.

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