您當前位置>首頁 » 新聞資(zī)訊 » 小程序相關(guān) >
微信小程序-bindtap等事件傳參
發表時間:2021-2-20
發布人:葵宇科技
浏覽次數:54
什麼是事件
事件是視圖層到邏輯層的通(tōng)訊方式。 事件可(kě)以将用戶的行為反饋到邏輯層進行處理。
事件可(kě)以綁定在組件上,當達到觸發事件,就會執行邏輯層中(zhōng)對應的事件處理函數。
事件對象可(kě)以攜帶額外信息,如(rú) id, dataset, touches。
看圖,因為需要傳遞的數據比較多,所以我們通(tōng)過dataset攜帶參數信息。如(rú)果隻有一個(gè)參數,可(kě)以通(tōng)過id來傳遞。
詳解(以常見的tap點擊事情為例)
wxml
- 1
JS
- 1
- 2
- 3
- 4
- 5
event 打印結果
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
注意兩點:
1、data-名稱 不能有大寫字母,如(rú)果需要,可(kě)以通(tōng)過 - (中(zhōng)劃線)來連接單詞,編譯的時候小程序會将第二個(gè)單詞首字母自動(dòng)大寫。圖中(zhōng)代碼是為了自己标志,所以第二個(gè)單詞的首字母大寫了,其實可(kě)以不用。data-* 屬性中(zhōng)不可(kě)以存放對象。
2、注意打印結果中(zhōng)target和(hé)currentTarget的區别。
target 觸發事件的源組件。
currentTarget 事件綁定的當前組件。
如(rú)果你(nǐ)在父容器(qì)上綁定了事件并傳參,當你(nǐ)點擊父容器(qì)時,事件綁定的組件和(hé)觸發事件的源組件是同一個(gè)元素,所以currentTarget 、target 都可(kě)以拿到參數,但是當你(nǐ)點擊子(zǐ)元素時,target 就不是事件綁定的組件了,所以拿不到參數。
由于事件冒泡的機制,父容器(qì)上綁定的事件依然可(kě)以觸發,所以currentTarget 依然可(kě)以拿到參數。
說明
id
傳參和(hé)dataset
類似,隻是最後獲取值的時候不同。event.currentTarget.id