我不久前开始使用 jQuery Mobile,了解 jQuery Mobile 的人都知道,它使用自己的 HTML 属性来为项目提供预定义的角色。主要是div。 一些例子:
<div data-role="page" id="trackPage">
<div data-role="header">
...
</div><!-- /header -->
<div data-role="content" id="content_init">
<form action="DoTrack" method="post" id="track_form" data-ajax="false">
<div data-role="fieldcontain" id="div_trackselect">
<fieldset data-role="controlgroup" data-type="horizontal">
....
</fieldset>
</div>
</form>
...
</div>
...
</div>
如您所见,添加了许多 jQuery 属性,例如
data-role data-type data-ajax data-transition data-iconpos
...
现在,我更喜欢使用 XHTML 严格语法,但是在验证时出现了这些错误:http://cl.ly/400Q080G3X2V3j3x2S00
我也尝试了 XHTML Transitional,但它给出了相同的错误。
我尝试通过谷歌搜索找到解决方案,但找不到。我认为要解决这个问题,所有 jQuery Mobile 属性都应该存在一个 DTD,对吗?
还有其他方法可以解决这个问题吗?
jQuery Mobile 主页明确指出:
一个统一的、基于 HTML5 的用户界面系统,适用于所有流行的移动设备平台...
因此,您应该使用 HTML5 文档类型。如果这对您很重要,这将确保您的页面有效。
<!DOCTYPE html>
不要忘记,如果您使用 HTML5 文档类型,您仍然可以使用 XHTML 样式语法。我想大多数人都是这样。
顺便说一句,jQuery Mobile 并没有创建自己的属性 - 它们不完全是“jQuery Mobile”属性 - data-* 属性系统 是 HTML5 的一部分,其存在是为了让您可以将任意数据附加到 DOM 节点。