微信小程序,bindtap事件遇上bindtouchend事件,bindtouchend事件先触发

时间:2022-02-20 19:13:58

现有某元素同时绑定了两个事件:bindtap、bindtouchend

wxml:

<view bindtouchend="touchend" bindtap="tap">事件之旅1</view>

<view bindtouchend="touchend">
<view bindtap="tap">事件之旅2</view>
</view>

<view bindtap="tap">
<view bindtouchend="touchend">事件之旅3</view>
</view>

js:

touchend: function(e){
console.log('touchend事件');
}

tap: function(e){
console.log('tap事件');
}

接下来,我们来点击这些文字,不管是事件之旅1、事件之旅2、事件之旅3,都会是 touchend 事件先触发,先打印“touchend 事件”,后打印“tap事件”。为什么呢?我的理解是这样:我们对该元素的动作是手指触摸,手指离开。而手指离开就是手指触摸动作结束(触发了 touchend 事件),然后计算该动作是否为长按,不是长按触发了 tap 事件。