张贤健的个人网站

很宅,没有朋友约又不愿意一个人待在家;不会修电脑;游戏技能点停留在连连看前几关;不会把技术挂在嘴边;不爱穿格子衬衫;没能力轻易开发各种软件。我不是大神,只是程序员中的小学生!

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

posted @ 2017-11-30 13:33  张贤健  阅读(2431)  评论(0编辑  收藏  举报