Ada*_*dam 111 html5 custom-data-attribute html5-data
我想写一个简单的jQuery插件,在指定的元素下显示内联模式.我的想法是让脚本根据元素上指定的数据属性进行自动初始化.
一个非常基本的例子:
<p data-modal-target>Hover over me for an inline modal!</p>
<div data-modal-content data-modal-align="right" data-modal-trigger="hover" data-modal-offset="10px"><!-- any desired syntax can go here --></div>
Run Code Online (Sandbox Code Playgroud)
我只是想知道data-modal-target
在上面的例子中是否有效,或者它是否必须data-modal-target="true"
?我不关心比IE9等更糟糕的东西,我唯一的要求是它是有效的HTML5.
Llo*_*oyd 109
是的,完全有效.在您的情况下,data-modal-target
将表示一个布尔属性:
2.4.2布尔属性
元素上存在布尔属性表示真值,缺少属性表示false值.
use*_*ser 43
自定义数据属性规范未提及对空属性处理的任何更改,因此有关空属性的一般规则适用于此处:
可以通过仅提供属性名称来指定某些属性,而不使用任何值.
在以下示例中,
disabled
使用空属性语法给出属性:Run Code Online (Sandbox Code Playgroud)<input disabled>
请注意,空属性语法完全等同于将空字符串指定为属性的值,如以下示例所示.
Run Code Online (Sandbox Code Playgroud)<input disabled="">
因此,您可以使用空的自定义数据属性,但需要特殊处理才能将它们用作布尔值.
如果您通过element.dataset
以下方式访问属性:
""
. undefined
.因此,您不能只检查,if (element.dataset.myattr)
因为它将永远false
.
你可以而且应该检查布尔属性if (element.dataset.myattr !== undefined)
.
劳埃德的回答是不正确的.他提到了布尔属性microsyntax的链接,但data-*
属性未在spec中指定为boolean.
归档时间: |
|
查看次数: |
26908 次 |
最近记录: |