jquery.tap.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * Author: Sergey Bondarenko (BR0kEN)
  3. * E-mail: broken@propeople.com.ua
  4. * Github: https://github.com/BR0kEN-/jTap
  5. * Updated: June 2, 2014
  6. * Version: 0.2.9
  7. */
  8. (function($, _) {
  9. 'use strict';
  10. /**
  11. * @param (object) ev - extending object, which contain event properties.
  12. * - (string) start - start event depending of @isTap.
  13. * - (string) end - start event depending of @isTap.
  14. */
  15. var ev = {
  16. start: 'touchstart mousedown',
  17. end: 'touchend mouseup'
  18. };
  19. $.event.special[_] = {
  20. setup: function() {
  21. $(this).off('click').on(ev.start + ' ' + ev.end, function(e) {
  22. /**
  23. * Adding jQuery event to @ev object depending of @isTap.
  24. *
  25. * Attention: value of this property will change two time
  26. * per event: first time - on start, second - on end.
  27. */
  28. ev.E = e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0] : e;
  29. }).on(ev.start, function(e) {
  30. /**
  31. * Function stop if event is simulate by mouse.
  32. */
  33. if (e.which && e.which !== 1) {
  34. return;
  35. }
  36. /**
  37. * Extend @ev object from event properties of initial phase.
  38. */
  39. ev.target = e.target;
  40. ev.time = new Date().getTime();
  41. ev.X = ev.E.pageX;
  42. ev.Y = ev.E.pageY;
  43. }).on(ev.end, function(e) {
  44. /**
  45. * Compare property values of initial phase with properties
  46. * of this, final, phase. Execute event if values will be
  47. * within the acceptable and set new properties for event.
  48. */
  49. if (
  50. ev.target === e.target &&
  51. ((new Date().getTime() - ev.time) < 750) &&
  52. (ev.X === ev.E.pageX && ev.Y === ev.E.pageY)
  53. ) {
  54. e.type = _;
  55. e.pageX = ev.E.pageX;
  56. e.pageY = ev.E.pageY;
  57. $.event.dispatch.call(this, e);
  58. }
  59. });
  60. },
  61. /**
  62. * Disassembling event.
  63. */
  64. remove: function() {
  65. $(this).off(ev.start + ' ' + ev.end);
  66. }
  67. };
  68. $.fn[_] = function(fn) {
  69. return this[fn ? 'on' : 'trigger'](_, fn);
  70. };
  71. })(jQuery, 'tap');
  72. $(".back-btn").on("tap",function(){
  73. api.closeWin();
  74. return false;
  75. })