小さなプログラムは穴を踏んで覚えます——長い押してクリックする事件と衝突します
2166 ワード
同じコントロールでbindtapとbindlongtapを同時に設定すると、bindlongtapのイベントが時間通りに表示され、クリックイベントがトリガーされます.
テストにより,ウィジェットにおけるイベント実行の順序は,touchstart→touchend→tap長押しtouchstart→longtap→touchend→tapであることが分かった.
処理方法:
このように時間で判断すれば、ある程度この問題を解決することができる.
文章「小プログラム踏坑記--長押しとクリック事件の衝突」を参考にした.
テストにより,ウィジェットにおけるイベント実行の順序は,touchstart→touchend→tap長押しtouchstart→longtap→touchend→tapであることが分かった.
処理方法:
// wxml
<view bindtouchstart="bindTouchStart" bindtouchend="bindTouchEnd" bindlongtap="bingLongTap" bindtap="bindTap"> view>
// js
bindTouchStart: function(e) {
this.startTime = e.timeStamp;
}
bindTouchEnd: function(e) {
this.endTime = e.timeStamp;
}
bindTap: function(e) {
if(this.endTime - this.startTime < 350) {
console.log(" ")
}
}
bingLongTap: function(e) {
console.log(" ");
}
このように時間で判断すれば、ある程度この問題を解決することができる.
文章「小プログラム踏坑記--長押しとクリック事件の衝突」を参考にした.