HTML5自定义属性的问题分析
程序员文章站
2022-07-02 11:12:06
这篇文章主要介绍了HTML5自定义属性的问题分析,需要的朋友可以参考下... 19-08-16...
问题背景
在页面与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自定义属性的问题分析,希望对大家有所帮助