mui.gestures.hold.js 885 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * mui gesture hold
  3. * @param {type} $
  4. * @param {type} name
  5. * @returns {undefined}
  6. */
  7. (function($, name) {
  8. var timer;
  9. var handle = function(event, touch) {
  10. var session = $.gestures.session;
  11. var options = this.options;
  12. switch (event.type) {
  13. case $.EVENT_START:
  14. if ($.options.gestureConfig.hold) {
  15. timer && clearTimeout(timer);
  16. timer = setTimeout(function() {
  17. touch.hold = true;
  18. $.trigger(session.target, name, touch);
  19. }, options.holdTimeout);
  20. }
  21. break;
  22. case $.EVENT_MOVE:
  23. break;
  24. case $.EVENT_END:
  25. case $.EVENT_CANCEL:
  26. if (timer) {
  27. clearTimeout(timer) && (timer = null);
  28. $.trigger(session.target, 'release', touch);
  29. }
  30. break;
  31. }
  32. };
  33. /**
  34. * mui gesture hold
  35. */
  36. $.addGesture({
  37. name: name,
  38. index: 10,
  39. handle: handle,
  40. options: {
  41. fingers: 1,
  42. holdTimeout: 0
  43. }
  44. });
  45. })(mui, 'hold');