一:當一個元素上同時綁定了bindtap與bindlongtap的時候觸發bindlongtap同時依然會觸發bindtap
分享者:bug_zero,原文地址
解決方案:
由于目前在微信小程序上bindlongtap被放置在bindtap后面觸發,同時bindtap觸發時間為touchend,則我們可以額外自定義一個函數用來判斷觸發的是tap還是longtap代碼如下(在需要處理的頁面page內定義):
-
//touchstart時候觸發
-
setTapStartTime : function () {
-
this.setData({
-
startTime : Date.now()
-
})
-
},
-
//tap或者longtap時候觸發時判斷
-
isTap : function () {
-
return Date.now() - this.data.startTime < 200;
-
}
二:wx.request的請求地址帶上參數時候會發生錯誤,無法正常請求(目前未了解到是否是哪邊的問題):
解決方案:參數一律放在data內
三:bindtap 多次點擊,可以打開N個窗口
分享者:月老,原文地址 目前在華為手機上出現,其他機型沒測試
-
<view class="toufang row" bindtap="{{setTask}}" data-href="taskSet/taskRewen/index">view>
-
bindViewTap: function(event) {
-
-
var accountId=app.getAccountId();
-
if(!accountId){
-
app.getUserInfo(function(userInfo){})
-
}
-
var url=event.currentTarget.dataset.href;
-
wx.navigateTo({
-
url: "../"+url
-
})
-
}
快速的多次點擊就會出現打開多過窗口。(第一次加載的頁面沒有這種情況,是在內頁出現)。建議修復或給出解決方案。謝謝 問題已經解決,自己琢磨了一下,可以根據timeStamp的時間差來設置 1、在app.js定義全局變量 lastTapTime
-
globalData:{
-
lastTapTime : 0
-
}
2、設置事件的時間差
-
var app = getApp();
-
-
bindViewTap: function(event) {
-
var url=e.currentTarget.dataset.href;
-
var time=e.timeStamp;
-
//設置無效點擊,根據自己的需求設置,這里navigateTo切換頁面到動畫結束需要的時間為500毫秒左右
-
if(time - app.globalData.lastTapTime < 500 && app.globalData.lastTapTime != 0){
-
app.globalData.lastTapTime = time;//這里一定更新無效點擊的時間
-
return;
-
}
-
//更新有效點擊的時間
-
app.globalData.lastTapTime = time;
-
wx.navigateTo({
-
url:url
-
})
-
}
大家可以嘗試封裝成方法,調用即可。
|