1. 程式人生 > >微信小程序的事件

微信小程序的事件

模型 參數 ima ipo 阻止事件冒泡 自定義屬性 其他 行為 就會

  技術分享圖片

  事件,視圖層到邏輯層的一種通訊方式,或者將用戶的行為返回到邏輯層,當我們在組件綁定事件之後,當我們觸發事件,就會執行邏輯層綁定的事件,處理回調函數,當頁面的事件觸發之後

  頁面上元素一些額外事件,通過事件對象傳遞給我們的回調函數

  綁定事件的實例:

  技術分享圖片

  通過view標簽來給他綁定了一個事件,事件名clickme,在index.js中,我們綁定了一個clickme的回調函數,在回調函數內,我們打印出了事件所傳入事件對象的參數

  事件對象上,各個屬性的一個含義;

    type:觸發事件的類型

    timestamp:觸發事件當時的時間戳

    target:觸發事件的根源組件,包括觸發事件組件的id,類型,以及dataset自定義屬性的集合

    currentTarget:觸發事件的當前組件,觸發當前事件的id,類型,以及dataset自定義屬性的集合

    touches:表示我們停留在屏幕上觸摸點的一個信息;

    changedTouches:表示一個有變化的觸摸點的信息;

    detail:表示我們綁定事件所攜帶的數據,包括x/y到頁面左上角的距離

  

  小程序的事件模型:

  技術分享圖片

  小程序的事件模型分3個部分:事件捕獲(自上而下)事件處理階段(執行),事件冒泡階段(由內到外)

  currentTarget和target的區別,

    currentTarget:表示當前組件,

    target:根源組件:

    比如,如上圖,最外層綁定了一個點擊事件,最裏面的那層綁定了一個點擊事件,當點擊最裏面那個事件,target代表了最外層的組件,currentTarget代表了最裏面那個組件

  小程序的事件

    技術分享圖片

  因為冒泡事件包含了捕獲事件,那就只說冒泡事件

    touchstart:手指按下屏幕的一個事件

    touchmove:手機按下屏幕移動的一個事件

    touchcancel:有來電提醒或者其他操作打斷的一個事件

    touchend:手指離開屏幕的一個事件

    tap:手指點擊屏幕,從手機點擊到手指離開小於350ms的

    longpress:手機點擊屏幕,超過350ms的後的一個操作(推薦)不能執行tap操作

    longtap:手機點擊屏幕,超過350ms的後的一個操作,可以執行tap操作

    transitionend:漸變動畫結束後,執行的一個操作

    animationstart:wxss動畫開始的一個事件回調

    animationiteration:wxss動畫執行,叠代一次的之後的調用

    animationend:wxss動畫結束後的,事件回調

    touchforcechange:有3d touch的ipone設備下的事件回調

  捕獲事件和冒泡事件的一個使用;

    bind不會阻止事件冒泡;

    capture-catch:可以綁定一個事件的捕獲

    catch:可以阻止事件冒泡或者事件捕獲階段

微信小程序的事件