在小程序开发中,获取元素的自定义属性,需要用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
    })
 },

总算写了一篇教程了,最近一直忙于公司项目小程序开发,很少总结遇到的问题,没得时间哇!