关于jQuery,元数据和XHTML合规性

Dav*_*ike 5 xhtml jquery metadata

我想在我们的网站中添加一些jQuery功能,其中一个标记将有一个点击处理程序,需要在另一个标记上执行操作,即A是来自B的操作的触发器.不能保证相对A和B的结构,所以我不能依赖于jQuery选择器,加上每个唯一的A只需要与其独特的对应关系B.

在这种情况下进行最佳方式的一般共识是什么?

选项1:谁关心XHTML合规性,无论如何都被高估了.我们有未经训练的网络内容制作者,无论如何能够将标记注入我们的网站,因此严格的XHTML合规性将成为一个梦想.只需构建标记属性并使用jQuery读取它们的值.

Example:
<div class="jquery-feature-trigger" actson="targetID">Trigger</div>
Run Code Online (Sandbox Code Playgroud)

选项2:使用看起来像HTML的属性,但不应该真正用于此目的.

Example:
<div class="jquery-feature-trigger" rel="targetID">Trigger</div>
Run Code Online (Sandbox Code Playgroud)

选项3:使用像ASP.NET 4.0这样的命名空间.

Example:
<div class="jquery-feature-trigger" custom:actson="targetID">Trigger</div>
Run Code Online (Sandbox Code Playgroud)

如果你想推荐选项3,我会很感激为了让它工作所需要的链接,因为我真的不知道是否必须制作DTD或如何链接它.

选项4: Stack Overflow社区有一个更好的主意...... ???

Gre*_*ell 8

您可以调查jQuery Metadata插件,该插件可以在class属性(或其他各种位置)中存储JSON元数据.例:

<div class="jquery-feature-trigger { actson: 'targetID' }">Trigger</div>
Run Code Online (Sandbox Code Playgroud)


Nic*_*ver 6

我现在会使用data-属性,尽管符合XHTML,如下所示:

<div class="jquery-feature-trigger" data-actson="targetID">Trigger</div>
Run Code Online (Sandbox Code Playgroud)

这些是HTML5功能,但除了不是验证器中的有效属性之外,不会导致HTML4/XHTML中的任何问题...但是没有实际问题.

jQuery的也有,因为jQuery的1.4.3增加了对这些内置支持.data()方法.