微信小程序 bindtap 事件多參數(shù)傳遞的代碼示例
微信小程序 bindtap 事件多參數(shù)傳遞
在微信小程序中,我們無法直接通過 bindtap="handleClick(1,2,3)"
的方式傳遞參數(shù),而是需要通過自定義屬性 data-
的方式進(jìn)行傳遞,并在事件回調(diào)函數(shù)中通過 event.currentTarget.dataset
來獲取這些參數(shù)。然而,這種傳參方式不夠友好,尤其是在傳遞多個參數(shù)時,需要特別注意參數(shù)的形式和命名方式。
代碼示例
index.wxml
<template name="like"> <view class="like-line"></view> <view class="like-wrap"> <view class="like {{ item.feedbackType === 1 ? 'selected' : '' }}" bindtap="like" data-args="{{ {item, index, type: 1} }}"> <!-- ??--> </view> <view class="dislike {{ item.feedbackType === 2 ? 'selected' : '' }}" bindtap="like" data-args="{{ {item, index, type: 2} }}"> <!-- ??--> </view> </view> </template>
index.js
Page({ async like(e) { let { item, type, index } = e.currentTarget.dataset['args'] let { feedbackType, recordId } = item console.log({ type, index, feedbackType, recordId }) // do something }, })
注意:
- 自定義屬性命名,不能包含大寫字母,大寫會自動轉(zhuǎn)成小寫,可能會導(dǎo)致獲取不到參數(shù)。如
data-recordId
會自動轉(zhuǎn)成data-recordid
; - 如果使用
data-record-id
的形式,最終在 event.target.dataset 中會將-
轉(zhuǎn)成駝峰的形式,即recordId
,取值需要用event.target.dataset['recordId']
。
微信小程序點(diǎn)擊事件(bindtap)傳遞參數(shù)
小程序在組件上綁定事件后,傳遞參數(shù)的方式不同于前端開發(fā)其他場景中直接加參數(shù)的方式,小程序在參數(shù)的傳遞時,采用事件對象的自定義屬性的方式,具體實(shí)現(xiàn)如下:
wxml:
<view bindtap="goTo" data-index="{{item.index}}">點(diǎn)擊事件傳參</view>
js中:
goTo: function(e){ // 傳遞的參數(shù) const index= e.currentTarget.dataset['index']; }
利用自定義屬性完成事件的參數(shù)傳遞
注意??!data-index
傳參命名最好是小寫,寫成大寫編譯會轉(zhuǎn)為小寫的?。?!獲取還是得寫小寫來獲取
到此這篇關(guān)于微信小程序 bindtap 事件多參數(shù)傳遞的文章就介紹到這了,更多相關(guān)微信小程序 bindtap 多參數(shù)傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序動畫組件使用解析,類似vue,且更強(qiáng)大
這篇文章主要介紹了微信小程序動畫組件,類似vue,且更強(qiáng)大使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Bootstrap源碼解讀網(wǎng)格系統(tǒng)(3)
這篇文章主要源碼解讀了Bootstrap網(wǎng)格系統(tǒng),介紹了Bootstrap網(wǎng)格系統(tǒng)的工作原理具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12JavaScript實(shí)現(xiàn)網(wǎng)頁電子時鐘
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁電子時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06javascript兩種function的定義介紹及區(qū)別說明
javascript兩種function的定義方式function a(){}和a=function(){}具體使用如下,感興趣的朋友可以參考下,希望對你對你學(xué)習(xí)function的定義有所幫助2013-05-05JS用斜率判斷鼠標(biāo)進(jìn)入DIV四個方向的方法
在網(wǎng)上去搜判斷鼠標(biāo)移入div移入移出的方法大同小異,下面小編給大家分享一篇文章關(guān)于js判斷鼠標(biāo)進(jìn)入div方向的代碼,感興趣的朋友一起看看吧2016-11-11javascript實(shí)現(xiàn)右側(cè)彈出“分享到”窗口效果
這篇文章主要為大家介紹了javascript實(shí)現(xiàn)右側(cè)彈出“分享到”窗口效果,以一個完整的js右側(cè)彈出“分享到”窗口的實(shí)例代碼進(jìn)行分析,感興趣的小伙伴們可以參考一下2016-02-02使用Vite從零搭建前端項(xiàng)目的詳細(xì)過程
這篇文章主要介紹了使用Vite從零搭建前端項(xiàng)目的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08