我想编写一个简单的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>
我只是想知道data-modal-target
在上面的例子中是否有效,还是必须是data-modal-target="true"
?我唯一的要求是它是有效的HTML5。
发布于 2018-04-02 15:31:43
是的,有效。data-modal-target
将代表一个布尔属性:
布尔属性 元素上布尔属性的存在表示真值,缺少属性表示假值。
发布于 2018-04-02 16:58:46
自定义数据属性规范没有提及对空属性处理的任何更改,因此有关空属性的一般规则适用于此处:
某些属性可以通过仅提供属性名称来指定,而没有值。 在以下示例中,该
disabled
属性是使用空属性语法给出的:<input disabled>
请注意,空属性语法与将空字符串指定为属性的值完全等效,如下例所示。<input disabled="">
因此,可以使用空的自定义数据属性,但需要进行特殊处理以将其用作布尔值。
如果通过element.dataset
以下方式访问属性:
""
。 undefined
。因此,不能只是检查,if (element.dataset.myattr)
因为它永远是false
。
可以也应该检查布尔属性if (element.dataset.myattr !== undefined)
。
https://stackoverflow.com/questions/-100003766
复制相似问题