论移动站点点击事件的实现

来源:luqidong 发布时间:2014-05-28 21:15:36 点击数:
由于移动站使用click的话会出现延迟一般都是用touchstart和touchend2个方法来实现模拟touch站的点击事件。
1.touchstart:在这个dom(或冒泡到这个dom,这当然是废话)上手指触摸开始即能触发
2.click:在这个dom(或冒泡到这个dom,这当然是废话)上手指触摸开始,且手指未曾在屏幕上移动(某些浏览器允许移动一个非常小的位移值),且在这个在这个dom上手指离开屏幕,且触摸和离开屏幕之间的间隔时间较短(某些浏览器不检测间隔时间,也会触发click)才能触发
于是我们可以看到,完全用touchstart代替是不太可取的。 下面在看下这张图
78OA办公系统
 这里介绍了点击移动用移动站的方法,我们用touchstart和touchedn中间的时间间隔和移动的位置判断是否是点击,也就是说如果touchstart与touchend之间的间隔小于大概200ms那么久可以认为是点击,这样的话是比click快的。于是我们就写这样的方法来模拟click事件:
var d1,d2;    
document.getElementById("imgcode").addEventListener('touchstart',function(){         d1=new Date().getTime();     })     document.getElementById("imgcode").addEventListener('touchend',function(){         d2=new Date().getTime();  
  if(d2-d1<=200){         document.getElementById("imgcode").src="/membership/GetValidateCode.html? v="+Math.random()*1000;  
    }     })
我这边是用touchstart与touchend替换click时间点击更换验证码的方法。
本文由78oa编辑所撰,如若转载请注明出处。