微信小程序中e.target与e.currentTarget区别是啥?为什么用e.target获取自定义属性得到undefined?
七娃博客751人阅读
在小程序开发中,获取元素的自定义属性,需要用e.currentTarget.dataset.index,不过我今天手误,写成了e.target.dataset.index,然后就遇到了点击父元素,能获取到参数index,点击子元素竟然没有捕获到父级的参数,郁闷了半天,没有找到原因,只能用了最笨的办法,给每个子元素都添加自定义属性data-index....如下图:
然后,再写另一个切换事件的时候,发现没有问题啊,对比之后发现一个是currentTarget,另一个是target,窝草!我做了什么?
- target,只能获取当前元素的属性,对父级和子级属性无效,当然返回的是undefined
- currentTarget,点击子元素的时候,可以冒泡到父元素的自定义属性,这也是二者最大的区别了!!!
所以在获取元素自定义属性的时候一定要用对了。比如我要获取父元素的自定义属性:
choose(e){ this.setData({ payFlag:e.currentTarget.dataset.index }) },
总算写了一篇教程了,最近一直忙于公司项目小程序开发,很少总结遇到的问题,没得时间哇!
评论 | 0 条评论
登录之后才可留言,前往登录