小程序如何獲取點(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,可以幫助我們獲取到頁(yè)面上的任何一個(gè)元素。通過調(diào)用該API的boundingClientRect方法可以獲取到元素左上角相對(duì)于整個(gè)頁(yè)面左上角的位置和元素的大小。
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)確地獲取到頁(yè)面上任意一個(gè)元素的位置和大小。
本文介紹了如何通過createSelectorQuery API和結(jié)合事件對(duì)象的方式獲取點(diǎn)擊當(dāng)前元素,希望對(duì)小程序開發(fā)者有所幫助。
本文由武漢肥貓科技提供技術(shù)支持。
本文標(biāo)簽: 小程序 獲取 結(jié)合事件對(duì)象
蘇州建站公司 杭州網(wǎng)站建設(shè) 廣州建網(wǎng)站 唐山網(wǎng)站建設(shè) 鄂爾多斯企業(yè)建站 鄭州企業(yè)建站 長(zhǎng)沙網(wǎng)站建設(shè) 石家莊做網(wǎng)站 徐州建網(wǎng)站
天門網(wǎng)站制作 恩施網(wǎng)站制作 鐘祥網(wǎng)站設(shè)計(jì) 洪湖網(wǎng)站制作 當(dāng)陽(yáng)網(wǎng)站設(shè)計(jì) 武穴網(wǎng)站建設(shè) 襄陽(yáng)做網(wǎng)站 鄂州企業(yè)建站 枝江網(wǎng)頁(yè)制作