移动端长按响应事件以及阻止默认行为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