#javascript #image #cordova #offlineapps
#javascript #изображение #кордова #автономные приложения
Вопрос:
С помощью jQuery Mobile я могу создать страницу, используя пользовательскую тему
<div data-role="page" data-theme="s" id="home">...
Теперь это работает, но требует, чтобы я добавлял эту строку на каждую из моих страниц и каждый раз, когда я добавляю новую страницу. Я попытался добавить data-theme="s"
в тег body, но это не повлияло. Есть ли какой-нибудь способ сделать это, кроме как установить его вручную для каждой страницы?
Ответ №1:
Вам придется делать это программно, 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. Хорошо, спасибо, я изучу это и отчитаюсь. Это жизнеспособное решение, но оно кажется настолько глупым, что для этого не будет реализован метод.
2. наряду с
$.mobile.page.prototype.options.theme
этим сработало3. В версии 1.4.0 (не уверен в предыдущих версиях) вам нужно сделать это после загрузки jquery.js и ПЕРЕД jquery.mobile*.js
4. Также в 1.4.0 достаточно просто установить
$.mobile.page.prototype.options.theme
Ответ №2:
Для меня сработало следующее. Просто убедитесь, что она вызывается после инициализации JQM.
$.mobile.page.prototype.options.theme = "b";