1、dataset
在標簽中利用 data-xxx 來定義你要傳入的引數,,
然后事件中傳入 event 用 event.currentTarget.dataset.xxx 來取你傳入的值
在 WXML 中,這些自定義資料以 data- 開頭,多個單詞由連字符 - 連接,這種寫法中,連字符寫法會轉換成駝峰寫法,而大寫字符會自動轉成小寫字符,如:
data-element-type,最侄訓呈現為event.currentTarget.dataset.elementType;data-elementType,最侄訓呈現為event.currentTarget.dataset.elementtype,
<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>
Page({ bindViewTap:function(event){ event.currentTarget.dataset.alphaBeta === 1 // - 會轉為駝峰寫法 event.currentTarget.dataset.alphabeta === 2 // 大寫會轉為小寫 } })
2、mark
2.7.1 以上,可以使用 mark 來識別具體觸發事件的 target 節點,此外, mark 還可以用于承載一些自定義資料(類似于 dataset ),
當事件觸發時,事件冒泡路徑上所有的 mark 會被合并,并回傳給事件回呼函式,(即使事件不是冒泡事件,也會 mark ,)
<view mark:myMark="last" bindtap="bindViewTap"> <button mark:anotherMark="leaf" bindtap="bindButtonTap">按鈕</button> </view>
如果按鈕被點擊,將觸發 bindViewTap 和 bindButtonTap 兩個事件,事件攜帶的 event.mark 將包含 myMark 和 anotherMark 兩項,
Page({ bindViewTap: function(e) { e.mark.myMark === "last" // true e.mark.anotherMark === "leaf" // true } })
細節注意事項:
- 如果存在同名的
mark,父節點的mark會被子節點覆寫, - 在自定義組件中接收事件時,
mark不包含自定義組件外的節點的mark, - 不同于
dataset,節點的mark不會做連字符和大小寫轉換,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/18384.html
標籤:JavaScript
下一篇:創建物件的兩種方式
