小程序進行事件傳參的時候,除了使用?data-*屬性?傳遞參數外,還可以 使用 mark 標記傳遞參數
mark 是一種自定義屬性,可以在組件上添加,用于來識別具體觸發事件的 target 節點。同時 mark 還可以用于承載一些自定義數據
在組件上使用 mark:自定義屬性 的方式將數據傳遞給事件處理函數
例如: <view mark:id=“100" bindtap="handler" />
然后通過事件對象進行獲取自定義數據
可按照以下代碼復制嘗試:
<!--pages/cart/cart.wxml-->
<view bindtap="parentHandler" mark:parentid="1" mark:parentname="tom">
<!-- 如果需要使用 mark 進行事件穿參數,需要使用 mark: 自定義屬性的方式進行參數傳遞 --><!-- <button bindtap="btnHandler" mark:id="1" mark:name="tom">按鈕</button> --><button mark:id="1" mark:name="tom">按鈕</button>
</view>
// pages/cart/cart.js
Page({// 按鈕綁定的事件處理函數btnHandler (e) {console.log(e.mark.id)console.log(e.mark.name)},parentHandler (e) {// 先點擊藍色區域(不點擊按鈕)// 通過事件對象獲取的是 view 身上綁定的數據// 先點擊按鈕(不點擊藍色區域)// 通過事件對象獲取到的是觸發事件的節點 以及 父節點身上所有的 mark 數據console.log(e)}})
/* pages/cart/cart.wxss */view {display: flex;height: 300rpx;background-color: rgb(231, 116, 22);align-items: center;
}