小程序如何獲取點(diǎn)擊當(dāng)前元素
小程序如何獲取點(diǎn)擊當(dāng)前元素
背景介紹
在小程序開發(fā)中,我們經(jīng)常需要獲取用戶的交互行為。其中一種比較常見的需求是獲取用戶點(diǎn)擊了哪一個(gè)元素。這個(gè)需求在很多場(chǎng)景中都會(huì)用到,比如列表項(xiàng)點(diǎn)擊跳轉(zhuǎn)、按鈕點(diǎn)擊觸發(fā)事件等。
使用原生API實(shí)現(xiàn)
小程序提供了一個(gè)原生的API:createSelectorQuery,可以幫助我們獲取到頁面上的任何一個(gè)元素。通過調(diào)用該API的boundingClientRect方法可以獲取到元素左上角相對(duì)于整個(gè)頁面左上角的位置和元素的大小。
wx.createSelectorQuery().selectAll('.elementClass').boundingClientRect(function(rects) {
rects.forEach(function (rect) {
console.log(rect.left, rect.top, rect.width, rect.height)
})
}).exec()
結(jié)合事件對(duì)象獲取
小程序中每個(gè)組件都有自己的事件,比如button組件有一個(gè)tap事件,view組件有一個(gè)tap事件等。在這些事件的回調(diào)函數(shù)里,都會(huì)傳遞一個(gè)事件對(duì)象,我們可以通過事件對(duì)象來獲取到當(dāng)前被點(diǎn)擊的元素。
Page({
tapHandler: function(event) {
console.log(event.currentTarget.dataset.id)
}
})
總結(jié)
小程序提供了多種方法來獲取當(dāng)前被點(diǎn)擊的元素。無論是使用原生API還是結(jié)合事件對(duì)象,都能夠快速準(zhǔn)確地獲取到頁面上任意一個(gè)元素的位置和大小。
本文介紹了如何通過createSelectorQuery API和結(jié)合事件對(duì)象的方式獲取點(diǎn)擊當(dāng)前元素,希望對(duì)小程序開發(fā)者有所幫助。
本文由武漢肥貓科技提供技術(shù)支持。
本文標(biāo)簽: 小程序 獲取 結(jié)合事件對(duì)象