本文主要為大家詳細介紹了為大家詳細幾種長按事件的需求,具有一定的參考價值,有興趣的小伙伴們可以參考一下,希望能幫助到大家。
在開發中常常會有長按事件的需求,這裡我簡單的介紹幾種長按事件的需求。
需求一:長按數字累加或累減
#HTML:
##
<p class="mui-numbox" data-numbox-step='10' data-numbox-min='0' data-numbox-max='100'> <button class="mui-btn mui-numbox-btn-minus" type="button"@touchstart="Loop_Sub(item.CartID)" @touchend="clearLoop()">-</button> <input class="mui-numbox-input" type="number" :value="item.Cart_Nums"/> <button class="mui-btn mui-numbox-btn-plus" type="button" @touchstart="Loop_Add(item.CartID)" @touchend="clearLoop()">+</button> </p>JS :
var vm = new Vue({ el: "#vue-container", data:{ Loop:null }, methods:{//长按添加数量 Loop_Add:function(ID){ //设置数量 clearInterval(vm.Loop);//再次清空定时器,防止重复注册定时器 $target=$(event.target).parent().find('input'); vm.Loop=setInterval(function(){ $num=$target.val(); $target.val(parseInt($num)+1); },100); }, //长按减少数量 Loop_Sub:function(ID){ //设置数量 clearInterval(vm.Loop);//再次清空定时器,防止重复注册定时器 $target=$(event.target).parent().find('input'); vm.Loop=setInterval(function(){ $num=$target.val(); if($num>0){ $target.val(parseInt($num)-1); }else{ clearInterval(vm.Loop); } //改变点击数 },100); }, clearLoop:function(){ clearInterval(vm.Loop); } } })這個Demo是在行動裝置上測試的,因此使用的是touch事件。方法很簡單,touchstart的時候去註冊個Interval定時器,touchend的時候再把定時器清除掉,這樣就能實現長按持續累加或累減的效果。
需求二:長按延時事件觸發
這類需求也比較簡單,和需求一類似。這裡拿需求一舉例,只要在touchstart新增setTimeout計時器延時事件執行,touchend清除計時器即可。 相關推薦:以上是VUE長依事件需求實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!