Search code examples
javascriptjqueryiphonetimertouch

Get the duration of a touch in javascript


Is it possible to get the duration of a touch using javascript on ios devices (and others if possible)? I would like to differentiate a long press from a short "click" press on an iphone webapp.

Thank you for your help!


Solution

  • $('#element').each(function() {
    
       var timeout,
           longtouch;
    
       $(this).bind('touchstart', function() {
          timeout = setTimeout(function() {
              longtouch = true;
          }, 1000);
       }).bind('touchend', function() {
           if (longtouch) {
              // It was a long touch.
           }
           longtouch = false;
           clearTimeout(timeout);
       });
    
    });
    

    jsFiddle.

    The fiddle works with a long click.