我如何制作自己的属性(HTML5)
How do I make my own attributes (HTML5)
我在JS中实现了一个可移动div函数(moveableFunc)。我使用onclick="moveableFunc(event,this)"来移动每个div(或元素)。我更喜欢使用这个函数作为属性,代码如下:
<div id="div1" data-option="moveable" class="div1">
hello
</div>
我该怎么做?
您只能为具有该属性的元素在window.onload
中绑定click
事件,例如:
window.onload = function () {
var moves = document.querySelectorAll('[data-option="moveable"]');
for (var i = 0; i < moves.length; i++) {
moves[i].onclick = function (e) {
e = e || window.event;
moveableFunc(e, this);
};
}
};
如果您知道这将只针对<div>
s,您甚至可以将选择器更改为.querySelectorAll('div[data-option="moveable"]');
,因此它将加快搜索速度。
或者你可以将moveableFunc
的参数重组为:
function moveableFunc(e) {
// Use `this` to reference the element that was clicked
}
那么你可以使用下面的代码来在循环中绑定事件:
moves[i].onclick = moveableFunc;
当然,最好使用addEventListener
而不是onclick
来绑定事件。这里有一些信息:addEventListener vs onclick
引用:
- https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll
- https://developer.mozilla.org/en-US/docs/DOM/EventTarget.addEventListener
作为一个例子,使用jQuery,可以这样做:
$('[data-option="moveable"]').on("click", moveableFunc);
(你修改了moveableFunc
的参数,就像我之前说的)
相关文章:
- Html5输入属性的默认值,如最小值、最大值、大小等
- 使用jQuery设置HTML5属性值时出现问题
- html5中数据描述属性中的html列表
- 使用CSS设置HTML5自动对焦属性
- HTML5拖放访问属性
- 如何检测对HTML5的支持;下载”;属性
- Javascript - 根据表单选择切换 html5 required=“” 属性
- HTML5 拖放 - 如何捕获和交换数据属性
- 在HTML5中是否可以有多个数据{名称}属性
- 如何在 iframe 中创建 HTML5 数据属性
- 组件是HTML5的属性还是原型.js的东西
- 为什么除了html5输入模式属性之外,这个简单的regex在任何地方都能工作
- Skrollr:操作html5数据属性
- HTML5嵌套数据-*用Javascript解析的属性don't返回嵌套对象
- jquery数据没有解析值html5数据自定义属性
- 想要初始化“;min”;输入类型的属性=“;日期“;在HTML5中,具有特定日期格式的日期值
- HTML5属性操作:纯JS vs. jQuery
- javascript在Firefox中生成无效的HTML5属性
- 如何将json格式设置为html5属性"data-settings"
- 使用JavaScript检查浏览器是否支持css3和/或HTML5属性