目前我正在为 JQuery Mobile 构建我的第一个插件。我已经设法使基本代码工作,但是我很难理解主题是如何应用的。在花了 2 个小时的谷歌搜索无济于事之后,我有点不知所措。
本质上:如何构建我的插件以从 JQM 的主题中提取样式?是否有关于主题在哪里/如何在我可以使用的机械层面上应用的参考?我正在构建的插件是一个有点定制的进度条显示,我希望进度条的颜色和边框使用主题。
目前我正在为 JQuery Mobile 构建我的第一个插件。我已经设法使基本代码工作,但是我很难理解主题是如何应用的。在花了 2 个小时的谷歌搜索无济于事之后,我有点不知所措。
本质上:如何构建我的插件以从 JQM 的主题中提取样式?是否有关于主题在哪里/如何在我可以使用的机械层面上应用的参考?我正在构建的插件是一个有点定制的进度条显示,我希望进度条的颜色和边框使用主题。
jQuery Mobile 主题基于一组与视觉特征相关的标准类。例如,.ui-btn
应将类添加到按钮,并将.ui-icon
类添加到图标以遵循 jQuery Mobile 主题约定。另一个例子是如何将.ui-icon-shadow
类添加到具有类的元素中,.ui-icon
它将被赋予阴影。
这是一个示例 jQuery Mobile 按钮:
<a href="../../" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-left ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-notext ui-btn-up-f" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="f" title="Home">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Home</span>
<span class="ui-icon ui-icon-home ui-icon-shadow"> </span>
</span>
</a>
因此,您可以手动将这些类添加到 HTML 标记中,也可以使用 jQuery Mobile 公开的函数创建小部件:
$('<ul data-role="listview"><li>FOOBAR</li></ul>').listview();
来源:http: //jquerymobile.com/demos/1.1.0/docs/lists/lists-methods.html
所有小部件都有类似listview()
的功能,其中大多数都可以接受选项,因此您可以设置小部件是否获取框阴影或其他任何内容。
更新
要让您的小部件继承最接近的主题,您可以执行以下操作:
//assuming `this` is the widget element
var theme = $(this).closest('[data-theme]').attr('data-theme') || 'a';