微信小程序事件綁定傳參冒泡及捕獲的示例詳解
常見的事件有:
| 類型 | 觸發(fā)條件 | 最低版本 |
|---|---|---|
| touchstart | 手指觸摸動(dòng)作開始 | |
| touchmove | 手指觸摸后移動(dòng) | |
| touchcancel | 手指觸摸動(dòng)作被打斷,如來電提醒,彈窗 | |
| touchend | 手指觸摸動(dòng)作結(jié)束 | |
| tap | 手指觸摸后馬上離開 | |
| longpress | 手指觸摸后,超過350ms再離開,如果指定了事件回調(diào)函數(shù)并觸發(fā)了這個(gè)事件,tap事件將不被觸發(fā) | 1.5.0 |
| longtap | 手指觸摸后,超過350ms再離開(推薦使用longpress事件代替) | |
| transitionend | 會(huì)在 WXSS transition 或 wx.createAnimation 動(dòng)畫結(jié)束后觸發(fā) | |
| animationstart | 會(huì)在一個(gè) WXSS animation 動(dòng)畫開始時(shí)觸發(fā) | |
| animationiteration | 會(huì)在一個(gè) WXSS animation 一次迭代結(jié)束時(shí)觸發(fā) | |
| animationend | 會(huì)在一個(gè) WXSS animation 動(dòng)畫完成時(shí)觸發(fā) | |
| touchforcechange | 在支持 3D Touch 的 iPhone 設(shè)備,重按時(shí)會(huì)觸發(fā) |
有兩個(gè)注意點(diǎn):
Touchcancle: 在某些特定場(chǎng)景下才會(huì)觸發(fā)(比如來電打斷等)
tap事件和longpress事件通常只會(huì)觸發(fā)其中一個(gè)
currentTarget和target的區(qū)別

事件傳遞參數(shù)
當(dāng)視圖層發(fā)生事件時(shí),某些情況需要事件攜帶一些參數(shù)到執(zhí)行的函數(shù)中, 這個(gè)時(shí)候就可以通過
data-屬性來完成:
1 格式:data-屬性的名稱
2 獲?。篹.currentTarget.dataset.屬性的名稱

touches和changedTouches的區(qū)別

事件的綁定兩種方法
第一種:bind:事件名 推薦方式,冒號(hào)隔開
wxml文件:
<button bind:tap="click1" data-name="{{name}}" data-age="18" id="bt">我是按鈕</button>
js文件:
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
name:"jeff"
},
//e為事件對(duì)象,事件所有產(chǎn)生的數(shù)據(jù)都在e中
click1:function(e){
console.log("你點(diǎn)擊了事件1",e)
},
)}
第二種:bind事件名 不隔開
wxml文件:
<view bindtap="click2">我是事件2</view>
js文件:
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
//e為事件對(duì)象,事件所有產(chǎn)生的數(shù)據(jù)都在e中
click2:function(e){
console.log("你點(diǎn)擊了事件2",e)
},
)}
事件傳參
關(guān)鍵字:setDate
WXML文件:
<button bind:tap='click2'>你當(dāng)前點(diǎn)擊了{(lán){num}}次</button>
js文件
// pages/test/test.js
Page({
data: {
num:0,
},
click2: function (e) {
this.setData({
num:this.data.num+1
})
console.log('你點(diǎn)擊了按鈕2')
},
})
事件的冒泡與事件的捕獲
capture-bind:tap="click1" # 事件捕獲,執(zhí)行順序:由外->內(nèi) bind:tap="click2" # 事件冒泡,執(zhí)行順序:由內(nèi)->外 catch: 阻止事件捕獲 capture-catch:tap="click3" # 順序執(zhí)行到click3,不包括click3.后面不再繼續(xù)執(zhí)行,阻止了


catch阻止捕獲

小結(jié)
1 響應(yīng)函數(shù)直接寫在page對(duì)象中就可以了,不需要和vue一樣寫在methods里面
2 <view bind:事件名稱 = "響應(yīng)函數(shù)的函數(shù)名" data-參數(shù)名 = "值">
3 獲取點(diǎn)擊事件傳過來的值,在事件對(duì)象中。例如:e.currentTarget.dataset中
以上就是微信小程序事件綁定傳參冒泡及捕獲的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于微信小程序事件綁定傳參冒泡及捕獲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
javascript實(shí)現(xiàn)獲取指定精度的上傳文件的大小簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄猨avascript實(shí)現(xiàn)獲取指定精度的上傳文件的大小簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10
JavaScript實(shí)例--創(chuàng)建一個(gè)歡迎cookie
這篇文章主要介紹了JavaScript實(shí)例--創(chuàng)建一個(gè)歡迎cookie,2022-01-01
JavaScript對(duì)象合并實(shí)現(xiàn)步驟介紹
這篇文章主要介紹了JavaScript對(duì)象合并實(shí)現(xiàn)步驟,為什么要合并?這是我在重構(gòu)代碼的時(shí)候的一個(gè)需求。簡(jiǎn)單來說,我會(huì)有若干個(gè)對(duì)象需要合并為一個(gè)對(duì)象。而這些對(duì)象為兩層,如果直接展開或者賦值會(huì)涉及到深拷貝2023-01-01
最簡(jiǎn)單的JavaScript圖片輪播代碼(兩種方法)
基于javascript代碼實(shí)現(xiàn)最簡(jiǎn)單的圖片輪播效果,非常簡(jiǎn)單,本文通過兩種方式給大家介紹最簡(jiǎn)單的圖片輪播,感興趣的朋友一起學(xué)習(xí)吧2015-12-12
javascript中的變量作用域以及變量提升詳細(xì)介紹
在javascript中, 理解變量的作用域以及變量提升是非常有必要的。這個(gè)看起來是否很簡(jiǎn)單,但其實(shí)并不是你想的那樣,還要一些重要的細(xì)節(jié)你需要理解2013-10-10

