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