Измените тему данных по умолчанию из jQuery Mobile

#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";