e.target
拿的是点击的对象的属性
如果是 data-
放到外层了,点击里面的元素是拿不到属性值的
而用 e.currentTarget
则是拿 bintap/catchtap
所在的对象的属性~,点击里面的元素一样能拿到属性值
<view class='a-child' data-tid='{{child.ID}}' bindtap='selectChild'>
<image class='avatar' src='../../images/localImages/default_user.png'></image>
<view class='child-mid'>
<view class='mid-top child-name'>{{child.STUDENTNAME}}</view>
示例中 要拿 tid 要如下:
selectChild: function(e) {
//获取ID
var tid = e.currentTarget.dataset.tid
console.log('tid: ' + tid)
},
而如果写成
var tid = e.target.dataset.tid
你点击 image
之类的子元素拿到的是 undefined
,而很多时候子元素基本都占满了父类 view
,所以就会出现 undefined
的情况
当然,你也可以每一层元素都加 data-tid
属性~~~这样就能用 e.target.dataset.tid
来获取值喽
开发中遇到的,记一下