Requires

Provides

Provides a custom touchhold event for touch devices

License:
MIT-style license.
Authors:
Christoph Pojer (@cpojer)
  1. 20
  2. 21
  3. 22
  4. 23
  5. 24
  6. 25
  7. 26
  8. 27
  9. 28
  10. 29
  11. 30
  12. 31
  13. 32
  14. 33
  15. 34
  16. 35
  17. 36
  18. 37
  19. 38
  20. 39
  21. 40
  22. 41
  23. 42
  24. 43
  25. 44
  26. 45
  27. 46
  28. 47
  29. 48
  30. 49
  31. 50
  32. 51
  33. 52
  34. 53
  35. 54
  36. 55
  37. 56
  38. 57
  39. 58
  40. 59
  41. 60
  42. 61
  43. 62
  44. 63
  45. 64
  46. 65
  47. 66
  48. 67
  49. 68
  50. 69
  51. 70
(function(){ var name = 'touchhold', delayKey = name + ':delay', disabled, timer; var clear = function(e){ clearTimeout(timer); }; var events = { touchstart: function(event){ if (event.touches.length > 1){ clear(); return; } timer = (function(){ this.fireEvent(name, event); }).delay(this.retrieve(delayKey) || 750, this); }, touchmove: clear, touchcancel: clear, touchend: clear }; Element.defineCustomEvent(name, { onSetup: function(){ this.addEvents(events); }, onTeardown: function(){ this.removeEvents(events); }, onEnable: function(){ disabled = false; }, onDisable: function(){ disabled = true; clear(); } }); })();