问题背景
在页面与js传值中我们经常用到data-id="1"的方式,然后通过e.target.dataset.id
取id的值
今天在获取值时怎么也取不到
问题分析
后来发现e对象有currentTarget和target属性,而dataset就在currentTarget中,所以通过e.currentTarget.dataset.id
取到了正确的值。
另外data-id="1"最好不要用驼峰命名如:data-Id="1"
,这样有时候也取不到值。
HTML5 自定义属性
网站中经常会看到以data-开头的属性定义,虽然W3C不认定,但最新HTML5规定data-是合理的,在HTML5中,任何以data-开始的都是自定义属性,通常它用来实现一些HTML里没有明确定义的元素,把用户自定义的属性应用到代码中
微信小程序文档
什么是事件
事件是视图层到逻辑层的通讯方式。
事件可以将用户的行为反馈到逻辑层进行处理。
事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
事件对象可以携带额外信息,如 id, dataset, touches。
事件的使用方式
在组件中绑定一个事件处理函数。
如bindtap,当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数。
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
在相应的Page定义中写上相应的事件处理函数,参数是event。
Page({ tapName: function(event) { console.log(event) } })
可以看到log出来的信息大致如下:
{ "type":"tap", "timeStamp":895, "target": { "id": "tapTest", "dataset": { "hi":"WeChat" } }, "currentTarget": { "id": "tapTest", "dataset": { "hi":"WeChat" } }, "detail": { "x":53, "y":14 }, "touches":[{ "identifier":0, "pageX":53, "pageY":14, "clientX":53, "clientY":14 }], "changedTouches":[{ "identifier":0, "pageX":53, "pageY":14, "clientX":53, "clientY":14 }] }
使用WXS函数响应事件
总结
以上所述是小编给大家介绍的HTML5自定义属性的问题分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
尽量少使用类,因为可以层叠识别,如: .News h3而不必在h3上加类 div class=”News...
前言 今天逛闲鱼的时候观察到每一行的高度不是相同的,经了解才知道原来这是一种...
dreamweaver cs6怎么设置背景音乐?有时候网页通过多媒体可以传递比文字和图片更...
昨天项目开发过程中,遇到一个样式加载优先级的问题。 定义了class,在页面最初...
网页设计既是一门科学也是一门艺术。网页设计工作一半基于正确的编程和设计技巧...
输入字段可以制作让用户可输入信息的 WML 卡片,正如这个例子演示的. 输入字段 ...
1.我是一个很有原则的人,说到底,我的原则只有三个字,看心情! 2.下辈子我要...
filter和backdrop-filter具有一定区别: Filter不仅仅作用于当前元素,后代元素...
最近制作下拉菜单时,打算用纯CSS,忽又看到令人头痛的CSS hack代码(平时很少关...
前言 现在不管是桌面客户端还是移动客户端,都会夹杂着一部分H5页面,这种混合式...