事件,視圖層到邏輯層的一種通訊方式,或者將用戶的行為返回到邏輯層,當(dāng)我們在組件綁定事件之后,當(dāng)我們觸發(fā)事件,就會執(zhí)行邏輯層綁定的事件,處理回調(diào)函數(shù),當(dāng)頁面的事件觸發(fā)之后
頁面上元素一些額外事件,通過事件對象傳遞給我們的回調(diào)函數(shù)
綁定事件的實例:
通過view標簽來給他綁定了一個事件,事件名clickme,在index.js中,我們綁定了一個clickme的回調(diào)函數(shù),在回調(diào)函數(shù)內(nèi),我們打印出了事件所傳入事件對象的參數(shù)
事件對象上,各個屬性的一個含義;
type:觸發(fā)事件的類型
timestamp:觸發(fā)事件當(dāng)時的時間戳
target:觸發(fā)事件的根源組件,包括觸發(fā)事件組件的id,類型,以及dataset自定義屬性的集合
currentTarget:觸發(fā)事件的當(dāng)前組件,觸發(fā)當(dāng)前事件的id,類型,以及dataset自定義屬性的集合
touches:表示我們停留在屏幕上觸摸點的一個信息;
changedTouches:表示一個有變化的觸摸點的信息;
detail:表示我們綁定事件所攜帶的數(shù)據(jù),包括x/y到頁面左上角的距離
小程序的事件模型:
小程序的事件模型分3個部分:事件捕獲(自上而下)事件處理階段(執(zhí)行),事件冒泡階段(由內(nèi)到外)
currentTarget和target的區(qū)別,
currentTarget:表示當(dāng)前組件,
target:根源組件:
比如,如上圖,最外層綁定了一個點擊事件,最里面的那層綁定了一個點擊事件,當(dāng)點擊最里面那個事件,target代表了最外層的組件,currentTarget代表了最里面那個組件
小程序的事件
因為冒泡事件包含了捕獲事件,那就只說冒泡事件
touchstart:手指按下屏幕的一個事件
touchmove:手機按下屏幕移動的一個事件
touchcancel:有來電提醒或者其他操作打斷的一個事件
touchend:手指離開屏幕的一個事件
tap:手指點擊屏幕,從手機點擊到手指離開小于350ms的
longpress:手機點擊屏幕,超過350ms的后的一個操作(推薦)不能執(zhí)行tap操作
longtap:手機點擊屏幕,超過350ms的后的一個操作,可以執(zhí)行tap操作
transitionend:漸變動畫結(jié)束后,執(zhí)行的一個操作
animationstart:wxss動畫開始的一個事件回調(diào)
animationiteration:wxss動畫執(zhí)行,迭代一次的之后的調(diào)用
animationend:wxss動畫結(jié)束后的,事件回調(diào)
touchforcechange:有3d touch的ipone設(shè)備下的事件回調(diào)
捕獲事件和冒泡事件的一個使用;
bind不會阻止事件冒泡;
capture-catch:可以綁定一個事件的捕獲
catch:可以阻止事件冒泡或者事件捕獲階段