主题
事件处理
事件使用 bind: 或简写 bind 绑定。bind 事件会冒泡,catch 事件会阻止冒泡。
xml
<view bindtap="openDetail" data-id="{{item.id}}">
<button catchtap="toggleFavorite" data-id="{{item.id}}">收藏</button>
</view>js
Page({
openDetail(event) {
const { id } = event.currentTarget.dataset
wx.navigateTo({ url: `/pages/detail/index?id=${encodeURIComponent(id)}` })
},
toggleFavorite(event) {
const { id } = event.currentTarget.dataset
// 更新收藏状态
},
})target 与 currentTarget
target:实际触发事件的最内层节点。currentTarget:绑定处理函数的节点。
业务标识通常从 currentTarget.dataset 读取。不要通过遍历节点或从展示文本反推业务数据。
