JQuery Mobile 默认数据主题

Posted

技术标签:

【中文标题】JQuery Mobile 默认数据主题【英文标题】:JQuery Mobile default data-theme 【发布时间】:2011-02-03 21:24:30 【问题描述】:

有人知道如何为 jquery-mobile 设置 默认 数据主题吗?

看起来有必要为每个组件设置数据主题。

即使您为页面数据角色设置数据主题,加载的列表和其他组件也不会尊重它。

我错过了手册的某些页面吗?

【问题讨论】:

【参考方案1】:

就像 Joel 所说,您必须覆盖默认值。目前看来没有别的办法了。

以 Joel 的示例代码为例:

<script src="jquery.js"></script>
<script src="custom-scripting.js"></script>
<script src="jquery-mobile.js"></script>

自定义您的 custom-scripting.js

这是一个示例代码,您可以配置更多选项:

$(document).bind("mobileinit", function () 

    // Navigation
    $.mobile.page.prototype.options.backBtnText = "Go back";
    $.mobile.page.prototype.options.addBackBtn      = true;
    $.mobile.page.prototype.options.backBtnTheme    = "d";

    // Page
    $.mobile.page.prototype.options.headerTheme = "a";  // Page header only
    $.mobile.page.prototype.options.contentTheme    = "c";
    $.mobile.page.prototype.options.footerTheme = "a";

    // Listviews
    $.mobile.listview.prototype.options.headerTheme = "a";  // Header for nested lists
    $.mobile.listview.prototype.options.theme           = "c";  // List items / content
    $.mobile.listview.prototype.options.dividerTheme    = "d";  // List divider

    $.mobile.listview.prototype.options.splitTheme   = "c";
    $.mobile.listview.prototype.options.countTheme   = "c";
    $.mobile.listview.prototype.options.filterTheme = "c";
    $.mobile.listview.prototype.options.filterPlaceholder = "Filter data...";
);

还应该有其他选项,例如:

$.mobile.dialog.prototype.options.theme
$.mobile.selectmenu.prototype.options.menuPageTheme
$.mobile.selectmenu.prototype.options.overlayTheme

您或许可以在此处找到更多设置: http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.js

【讨论】:

嘿,有没有办法在嵌套的列表视图标题中添加自定义按钮,就像上面提到的后退按钮...??? @umair.ali 据我所知,没有“内置”方式。 - 您可以通过脚本扩展 html 结构并触发 jQuery Mobile 为您创建相应的标记。 - 也许最好在 *** 上创建自己的问题。如果您正在寻找一般的导航元素,请查看 JQM 的新功能,例如面板 -- view.jquerymobile.com/1.3.1/dist/demos/examples/panels/…【参考方案2】:

对于嵌套列表视图,要控制标题主题,您需要覆盖将嵌套标题主题设置为蓝色的默认选项。

为此,您只需在 jquery 加载和 jquery.mobile.js 加载之间添加以下内容。

示例:

因为 mobileinit 事件在执行时立即触发, 您需要在加载 jQuery Mobile 之前绑定您的事件处理程序。 因此,我们建议在以下链接到您的 javascript 文件 顺序:

<script src="jquery.js"></script>
<script src="custom-scripting.js"></script>
<script src="jquery-mobile.js"></script>

所以在“custom-scripting.js”中加入以下内容...

$(document).bind("mobileinit", function () 
   $.mobile.listview.prototype.options.headerTheme = "a";
);

其中“a”是您要应用于嵌套标题的主题..

或者您可以在 jquery 移动源中覆盖它,搜索“headerTheme”它将在第 5020 行附近

【讨论】:

【参考方案3】:

主题 a,b,c,d 和 e 都在 css 文件中,如果您想要自定义主题可以使用 f-z,复制 a 并将其更改为您的主题字母。将 data-theme="z" 添加到您的元素中

<body> 
<div data-role="page" id="apply" data-theme="z">
...
</div>
</body>

【讨论】:

【参考方案4】:

据我所知,您必须为页面 div 设置一个主题,并且它将在内部继承。

【讨论】:

naugtur,我试过了,但在某些情况下,比如嵌套列表,主题配置不受尊重。 试试 JQM alpha3 - 今天发布了 我有同样的问题,我的可折叠元素都有带有数据主题“d”的关闭/打开图标,而不是我为页面定义的 c... 在父 div 上设置 data-theme="b" 为我改变了大多数孩子。有些东西虽然不喜欢我的标题。

以上是关于JQuery Mobile 默认数据主题的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个 jQuery Mobile 主题

Jquery Mobile主题及插件的使用

jQuery Mobile 主题

jQuery Mobile 主题

JQuery Mobile 1.4.5 - 被主题 css 覆盖的 ui-mini

ASP.NET MVC 3 上 jQuery Mobile 的主题分配失败