天天看點

微信小程式中事件微信小程式中事件

微信小程式中事件

一.常見的事件有

類型 觸發條件 最低版本
touchstart 手指觸摸動作開始
touchmove 手指觸摸後移動
touchcancel 手指觸摸動作被打斷,如來電提醒,彈窗
touchend 手指觸摸動作結束
tap 手指觸摸後馬上離開
longpress 手指觸摸後,超過350ms再離開,如果指定了事件回調函數并觸發了這個事件,tap事件将不被觸發 1.5.0
longtap 手指觸摸後,超過350ms再離開(推薦使用longpress事件代替)
transitionend 會在 WXSS transition 或 wx.createAnimation 動畫結束後觸發
animationstart 會在一個 WXSS animation 動畫開始時觸發
animationiteration 會在一個 WXSS animation 一次疊代結束時觸發
animationend 會在一個 WXSS animation 動畫完成時觸發
touchforcechange 在支援 3D Touch 的 iPhone 裝置,重按時會觸發

有兩個注意點:

Touchcancle: 在某些特定場景下才會觸發(比如來電打斷等)            

複制

​ tap事件和longpress事件通常隻會觸發其中一個

二.書寫方式

頁面中

不需要傳參的事件

<!--寫法一 bind事件名='函數名' -->
<button bindtap="fuck">點我</button>
<!--寫法一 bind:事件名='函數名' -->           

複制

需要傳參的事件

<!-- 點選傳參data-傳過去的key='變量值' -->
<button bindtap="fuck_1" data-name="ywy">傳參</button>
<!-- 點選傳變量data-傳過去的key='{{變量名}}' -->
<button bindtap="fuck_2" data-number='{{a}}'>{{a}}</button>           

複制

js檔案中

fuck:function(){
    console.log('1111111')
  },
  fuck_1: function (data) {
   console.log(data)
  },
  fuck_2: function (e) {
    console.log(e)
  },           

複制

三.有傳參的事件取值

事件傳遞參數

當視圖層發生事件時,某些情況需要事件攜帶一些參數到執行的函數中, 這個時候就可以通過

data-屬性來完成:

1 格式:data-屬性的名稱

2 擷取:e.currentTarget.dataset.屬性的名稱

currentTarget和target的差別

這個差別普通的标簽看不出來,但是一旦有标簽的父标簽頁有一個事件時候,這時候就有差別,currentTarget指向的是本身的函數調用傳的參數,而target不是

四.傳參和定義變量之間的操作

頁面中js
  func:function(e){
    this.setData({
        變量名:this.data.變量名++
    })
  },           

複制