微信小程序通過點擊事件傳參(data-)的操作示例
前言
大家都知道在 vue 中,我們可以直接在點擊事件中放入傳遞的參數(shù)進行傳參;然而微信小程序中并不適用這樣的寫法,但是微信小程序可以通過自定義屬性從而綁定參數(shù)使用。
data- 的用法
微信小程序可以通過直接寫 data-index="1" 進行數(shù)據(jù)的綁定 ,利用 bindtap 點擊事件執(zhí)行函數(shù)從而獲取到參數(shù)信息。
<view bindtap="triggers" data-idType="1">點擊我</view>
注意:
data-是固定的寫法,-后面可以取任意的名字,但是需要強調(diào)的是在獲取的時候要寫相對應的名字,例如: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 分別表示事件的目標元素和當前元素。在某些情況下,特別是當你綁定事件處理函數(shù)的元素包含子元素時,你可能會在 e.target 中找到你想要的值。
但是,需要注意的是,e.target 和 e.currentTarget 之間的區(qū)別很重要:
e.target 表示觸發(fā)事件的元素,即實際點擊的元素。e.currentTarget 表示綁定事件處理程序的元素,即當前元素。
在你的代碼中,點擊了或 元素,它們都是 e.currentTarget 的子元素,但事件實際上是在包含它們的元素上觸發(fā)的。因此,使用 e.currentTarget.dataset 更安全和可靠,因為它總是引用你綁定事件的元素的數(shù)據(jù)屬性。
雖然在某些情況下 e.target 也可以包含你想要的數(shù)據(jù),但為了代碼的可維護性和可讀性,最好使用 e.currentTarget 來獲取數(shù)據(jù)屬性的值,因為這更符合代碼的意圖和結構。
當綁定事件處理函數(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ū)別:

當你點擊圖片時,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 的值的。
到此這篇關于微信小程序通過點擊事件傳參(data-)的文章就介紹到這了,更多相關微信小程序傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS中的算法與數(shù)據(jù)結構之常見排序(Sort)算法詳解
這篇文章主要介紹了JS中的算法與數(shù)據(jù)結構之常見排序(Sort)算法,結合實例形式詳細分析了js常見排序算法中的冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序等算法相關實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2019-08-08
2007/12/23更新創(chuàng)意無限,簡單實用(javascript log)
在javascript開發(fā)過程中,如果總是使用alert的方式調(diào)試程序,在某些簡單的程序中是可行的. 但是在通常的項目很復雜,這種方式已經(jīng)很難滿足,企業(yè)級開發(fā)的需要。2007-12-12
js console.log打印對像與數(shù)組用法詳解
這篇文章主要介紹了js console.log打印對像與數(shù)組用法,結合實例形式較為詳細的分析了js使用console.log實現(xiàn)打印對象與數(shù)組的具體實現(xiàn)步驟與相關技巧,需要的朋友可以參考下2016-01-01
ajax跨域調(diào)用webservice的實現(xiàn)代碼
這篇文章主要介紹了 ajax跨域調(diào)用webservice服務例子和理解,最近ajax訪問webservice遇到跨域的問題,網(wǎng)上搜索資料,總結如下2016-05-05
一個級聯(lián)菜單代碼學習及removeClass與addClass的應用
最近在學些web前段的知識,看見博客園首頁左側(cè)的一個級聯(lián)菜單,很是好奇,于是想自己實現(xiàn)以下,代碼書寫很簡潔而且易懂,感興趣的朋友可以了解下,希望本文對你學習級聯(lián)菜單有所幫助2013-01-01

