在上代碼之前,微信小程序點擊事件,長按事件的觸發順序需要我們了解一下下
事務分類
touchstart:手指觸摸
longtap:手指觸摸后后,超過350ms離開
touchend:手指觸摸動作結束
tap:手指觸摸后離開
事件 | 觸發順序 |
單擊 | touchstart → touchend → tap |
長按 | touchstart → longtap → touchend → tap |
通過上表格可以發現,單擊事件與長按事件的區別就在於 longtap事件,所以我們通過longtap事件進行區分。現在可以開始上代碼啦
.xwml 文件
<view >
<image src='{{urls}}' class="asd" mode="aspectFit" bindtap='nophonefull' id="{{urls}}" bindlongtap="bingLongTap" bindtouchstart="touchStart" bindtouchend="touchEnd"></image>
</view>
.js 文件
//定義用到的變量
data: {
startTime:0, //點擊開始時間
endTime:0 //點擊結束時間
}
//手指觸摸開始賦值
touchStart: function (e) {
this.startTime = e.timeStamp;
}
//手指觸摸結束賦值
touchEnd: function (e) {
this.endTime = e.timeStamp;
}
// nophonefull 不管點擊還是長按都會觸發的事件
nophonefull: function () {
//通過判斷手指觸摸時間來判斷是否是點擊事件,當時間差小於350時,為點擊事件
if (this.endTime - this.startTime < 350) {
//這里可以做點擊事件的處理啦
}
}
//只有長按事件才會觸發
bingLongTap : function(e){
//這里可以做長按事件要處理的
}
以上就是區分點擊事件和長按事件的方法啦,如果有不對的地方或者有跟簡單的方法,歡迎留言