使用jQuery在Android上确定长按(长按,点按保持)

Vol*_*ike 8 jquery android tapandhold

我已经能够使用jQuery和HTML页面在Android上成功地使用touchstart,touchmove和touchend事件.现在我想看看诀窍是什么,以确定一个长敲击事件,其中一个点击并保持3秒.我似乎无法解决这个问题.我想在没有Sencha Touch,JQTouch,jQMobile等的jQuery中纯粹这样做.

我喜欢jQTouch的概念,虽然它并没有为我提供很多东西,但我的一些代码却打破了它.使用Sencha Touch,我不喜欢将jQuery转移到Ext.js以及一些新的Javascript抽象方式,特别是当jQuery非常强大时.所以,我想单独使用jQuery来解决这个问题.我已经能够使用jQuery自己做很多jQTouch和Sencha Touch的事情了.并且jQMobile仍处于测试阶段,尚未对Android进行足够的指导.

Ari*_*lam 11

定时器未使用但只会在用户松开长按后松开手指.

var startTime, endTime;
var gbMove = false;

window.addEventListener('touchstart',function(event) {
    startTime = new Date().getTime(); 
    gbMove = false;        
},false);

window.addEventListener('touchmove',function(event) {
  gbMove = true;
},false);

window.addEventListener('touchend',function(event) {
    endTime = new Date().getTime();
    if(!gbMove && (endTime-startTime)/1000 > 2)
        alert('tap hold event');      
},false);
Run Code Online (Sandbox Code Playgroud)


Vol*_*ike 7

var gnStartTime = 0;
var gbMove = false;
var gbStillTouching = false;

function checkTapHold(nID) {
  if ((!gbMove) && (gbStillTouching) && (gnStartTime == nID)) {
    gnStartTime = 0;
    gbMove = false; 
    alert('tap hold event');    
  }
}

window.addEventListener('touchstart',function(event) {
  gbMove = false;
  gbStillTouching = true;
  gnStartTime = Number(new Date());
  setTimeout('checkTapHold(' + gnStartTime + ');',2000);
},false);

window.addEventListener('touchmove',function(event) {
  gbMove = true;
},false);

window.addEventListener('touchend',function(event) {
  gbStillTouching = false;
},false);
Run Code Online (Sandbox Code Playgroud)