移动端长按响应事件以及阻止默认行为e.preventDefault()导致定时器setTimeout不能响应

手指触摸绑定:

 $(document).on('touchstart', '.photo', function(e){
currentIndex = parseInt($(this).index('.photo'));
         if (!timeoutEvent)
  timeoutEvent = setInterval("longPress()", 500);//如果是给类元素绑定长按,必须没有定时器的时候再生成定时器
e.preventDefault();
})
$(document).on('touchmove', '.photo', function(e){
})
$(document).on('touchend', '.photo', function(e){
clearInterval(timeoutEvent);
timeoutEvent = 0;
e.preventDefault();
})

触发函数:

function longPress() {
clearInterval(timeoutEvent);
alert('长按'); })

1、利用定时器很方便的进行相应长按触发

2、用setInterval不用setTimeout,是e.preventDefault的这里的一个问题,组织默认事件行为会影响setTimeout而不会影响setInterval。

上一篇:Sublime Text 2 一些常用的快捷键


下一篇:Mysql绿色版安装和遇到的问题