vue 手指長按觸發事件
阿新 • • 發佈:2019-01-19
手指 chm () timeout 自己 div als 按住說話 而不是
按鈕
<span class="btn" @touchstart="gtouchstart()" @touchmove="gtouchmove()" @touchend="gtouchend()">按住說話</span>
data數據定義一個定時器
timeOutEvent:0,//定時器
方法
gtouchstart(){ this.timeOutEvent = setTimeout(()=>{ this.timeOutEvent = 0;//真正長按後應該執行的內容 console.log("長按事件觸發發"); },500);//這裏設置定時器,定義長按500毫秒觸發長按事件,時間可以自己改,個人感覺500毫秒非常合適 return false; },
//如果手指有移動,則取消所有事件,此時說明用戶只是要移動而不是長按 gtouchmove(){ clearTimeout(this.timeOutEvent);//清除定時器 this.timeOutEvent = 0; alert("取消了"); },
//手釋放,如果在500毫秒內就釋放,則取消長按事件,此時可以執行onclick應該執行的事件 gtouchend(){ clearTimeout(this.timeOutEvent);//清除定時器 if(this.timeOutEvent!==0){ //這裏寫要執行的內容(尤如onclick事件)console.log("你這是點擊,不是長按"); } return false; },
vue 手指長按觸發事件