微信小程序内,子元素覆盖父元素,点击子元素获取不到父元素自定义的值

<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 来获取 itemindex

但如果点击imagetext标签,e.target.dataset.item 只会返回一个空对象 {}

网上看了很多,都说是冒泡的原因,把 bindtap 改为 catchtap 就行了,但亲身试验,发现没有效果

后来查了一下,是点击方法的回调参数的储存数据的位置变化了,需要把 target 改成 currentTarget,这样又能获取到数据了

代码如下:

 topBtnClick(e){ //跳转商品详情
    // console.log(e.target.dataset)
    console.log(e.currentTarget.dataset)
  },
posted @ 2025-01-06 17:24  visualStudioCode  阅读(80)  评论(0)    收藏  举报