Изменить стандартную тему данных с jQuery Mobile - PullRequest
6 голосов
/ 28 октября 2011

С помощью jQuery Mobile я могу создать страницу, используя собственную тему

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

Теперь это работает, но требует, чтобы я добавлял эту строку на каждую из своих страниц и каждый раз, когда добавляю новую страницу. Я попытался добавить data-theme="s" в тег body, но это никак не отразилось. Есть ли способ сделать это иначе, чем установить его вручную для каждой страницы?

Ответы [ 2 ]

8 голосов
/ 28 октября 2011

Вы должны были бы сделать это программно, AFAIK.

Что-то вроде:

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

Теперь, поскольку нет централизованного хука - вам придется делать подобноестрока для всех вариантов темы:

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

и так далее.

У меня нет списка всех из них, но быстрый просмотр в jquery.mobile-1.0rc1.js поиске .prototype.options. показывает следующее:

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

так что мне кажется, что вы можете пойти с этим и узнать больше, как вы идете. Обратите внимание , что не все из них созданы таким образом - некоторые создаются динамически в коде.Ищите строку Theme, чтобы понять, что я имею в виду.

Обновление

$.mobile.page.prototype.options.theme также должно быть обновлено - на основе комментария Моака ниже.

1 голос
/ 24 февраля 2014

Следующее сработало для меня.Просто убедитесь, что он вызывается после инициализации JQM.

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