微信小程序内,子元素覆盖父元素,点击子元素获取不到父元素自定义的值
<view>
<view class='bg_white' wx:for="{{topTabTypeList}}" wx:key="index" bindtap="topBtnClick" data-item="{{item}}" data-index="{{index}}">
<image src="{{item.img}}" style="width:50rpx;height:50rpx;margin-bottom:18rpx;"></image>
<text>{{item.title}}</text>
</view>
</view>
向上面代码一样,如果点击类名为 bg_white 的元素,那可以在 topBtnClick 方法内通过 e.target.dataset 来获取 item 和 index
但如果点击image和text标签,e.target.dataset.item 只会返回一个空对象 {}
网上看了很多,都说是冒泡的原因,把 bindtap 改为 catchtap 就行了,但亲身试验,发现没有效果
后来查了一下,是点击方法的回调参数的储存数据的位置变化了,需要把 target 改成 currentTarget,这样又能获取到数据了
代码如下:
topBtnClick(e){ //跳转商品详情
// console.log(e.target.dataset)
console.log(e.currentTarget.dataset)
},

浙公网安备 33010602011771号