微信小程式中事件 一.常見的事件有 | 類型 | 觸發條件 | 最低版本 | | | | | | touchstart | 手指觸摸動作開始 | | | touchmove | 手指觸摸後移動 | | | touchcancel | 手指觸摸動作被打斷,如來電提醒,彈窗 | | | touchend ...
微信小程式中事件
一.常見的事件有
類型 | 觸發條件 | 最低版本 |
---|---|---|
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.變數名++
})
},