微信小程序通過點擊事件傳參(data-)的操作示例
前言
大家都知道在 vue 中,我們可以直接在點擊事件中放入傳遞的參數(shù)進行傳參;然而微信小程序中并不適用這樣的寫法,但是微信小程序可以通過自定義屬性從而綁定參數(shù)使用。
data- 的用法
微信小程序可以通過直接寫 data-index="1"
進行數(shù)據(jù)的綁定 ,利用 bindtap
點擊事件執(zhí)行函數(shù)從而獲取到參數(shù)信息。
<view bindtap="triggers" data-idType="1">點擊我</view>
注意:
data-
是固定的寫法,-
后面可以取任意的名字,但是需要強調(diào)的是在獲取的時候要寫相對應(yīng)的名字,例如:data-index = "1"
,獲取時就是e.target.dataset.index
。
下面通過一個簡單的代碼小實例帶大家更直觀的了解 data- 的用法。
wxml文件
<!-- 按鈕觸發(fā)事件 --> <view bindtap="triggers" data-idType="1">點擊我</view>
js文件
Page({ data: {}, //點擊事件 triggers(e) { console.log(e.currentTarget.dataset.idtype); // 1 }, })
如下圖:
為什么有些時候 target
中也可以取到值?
在事件處理中,e.target
和 e.currentTarget
分別表示事件的目標(biāo)元素和當(dāng)前元素。在某些情況下,特別是當(dāng)你綁定事件處理函數(shù)的元素包含子元素時,你可能會在 e.target
中找到你想要的值。
但是,需要注意的是,e.target
和 e.currentTarget
之間的區(qū)別很重要:
e.target
表示觸發(fā)事件的元素,即實際點擊的元素。e.currentTarget
表示綁定事件處理程序的元素,即當(dāng)前元素。
在你的代碼中,點擊了或 元素,它們都是 e.currentTarget
的子元素,但事件實際上是在包含它們的元素上觸發(fā)的。因此,使用 e.currentTarget
.dataset 更安全和可靠,因為它總是引用你綁定事件的元素的數(shù)據(jù)屬性。
雖然在某些情況下 e.target
也可以包含你想要的數(shù)據(jù),但為了代碼的可維護性和可讀性,最好使用 e.currentTarget
來獲取數(shù)據(jù)屬性的值,因為這更符合代碼的意圖和結(jié)構(gòu)。
當(dāng)綁定事件處理函數(shù)的元素包含子元素時,可以通過代碼來演示 e.target
和 e.currentTarget
之間的區(qū)別。以下是一個示例:
wxml文件
<view bindtap="handleClick" data-value="Parent"> <image src="../../assets/cheliang.png" data-value="Child"></image> </view>
js文件
Page({ handleClick(e) { console.log(e.target.dataset.value); // 輸出子元素的值 console.log(e.currentTarget.dataset.value); // 輸出父元素的值 } })
在這個示例中,有一個包含圖片的 <view>
元素,點擊圖片或 <view>
元素都會觸發(fā)相同的事件處理函數(shù)。在事件處理函數(shù)中,我們可以演示兩者的區(qū)別:
當(dāng)你點擊圖片時,e.target
表示圖片元素,因此 e.target.dataset.value
輸出子元素的值,即 『Child』。而 e.currentTarget
表示綁定事件的 元素,因此 e.currentTarget.dataset.value
輸出父元素的值,即 『Parent』。
這個示例清晰地展示了 e.target
和 e.currentTarget
之間的區(qū)別。e.target
始終表示觸發(fā)事件的元素,而 e.currentTarget
始終表示綁定事件的元素。
換一種方式來看
如下圖:
是拿不到 data-value
的值的。
到此這篇關(guān)于微信小程序通過點擊事件傳參(data-)的文章就介紹到這了,更多相關(guān)微信小程序傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS中的算法與數(shù)據(jù)結(jié)構(gòu)之常見排序(Sort)算法詳解
這篇文章主要介紹了JS中的算法與數(shù)據(jù)結(jié)構(gòu)之常見排序(Sort)算法,結(jié)合實例形式詳細(xì)分析了js常見排序算法中的冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序等算法相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2019-08-082007/12/23更新創(chuàng)意無限,簡單實用(javascript log)
在javascript開發(fā)過程中,如果總是使用alert的方式調(diào)試程序,在某些簡單的程序中是可行的. 但是在通常的項目很復(fù)雜,這種方式已經(jīng)很難滿足,企業(yè)級開發(fā)的需要。2007-12-12js console.log打印對像與數(shù)組用法詳解
這篇文章主要介紹了js console.log打印對像與數(shù)組用法,結(jié)合實例形式較為詳細(xì)的分析了js使用console.log實現(xiàn)打印對象與數(shù)組的具體實現(xiàn)步驟與相關(guān)技巧,需要的朋友可以參考下2016-01-01ajax跨域調(diào)用webservice的實現(xiàn)代碼
這篇文章主要介紹了 ajax跨域調(diào)用webservice服務(wù)例子和理解,最近ajax訪問webservice遇到跨域的問題,網(wǎng)上搜索資料,總結(jié)如下2016-05-05一個級聯(lián)菜單代碼學(xué)習(xí)及removeClass與addClass的應(yīng)用
最近在學(xué)些web前段的知識,看見博客園首頁左側(cè)的一個級聯(lián)菜單,很是好奇,于是想自己實現(xiàn)以下,代碼書寫很簡潔而且易懂,感興趣的朋友可以了解下,希望本文對你學(xué)習(xí)級聯(lián)菜單有所幫助2013-01-01