移動端長按響應事件以及阻止默認行為e.preventDefault()導致定時器setTimeout不能響應


手指觸摸綁定:

 1 $(document).on('touchstart', '.photo', function(e){
 2             currentIndex = parseInt($(this).index('.photo'));
         if (!timeoutEvent)
3   timeoutEvent = setInterval("longPress()", 500);//如果是給類元素綁定長按,必須沒有定時器的時候再生成定時器 4 e.preventDefault(); 5 }) 6 $(document).on('touchmove', '.photo', function(e){ 7 }) 8 $(document).on('touchend', '.photo', function(e){ 9 clearInterval(timeoutEvent); 10 timeoutEvent = 0; 11 e.preventDefault(); 12 })

觸發函數:

function longPress() {
    clearInterval(timeoutEvent);
        alert('長按');

})

1、利用定時器很方便的進行相應長按觸發

2、用setInterval不用setTimeout,是e.preventDefault的這里的一個問題,組織默認事件行為會影響setTimeout而不會影響setInterval。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM