mui.back.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * mui back
  3. * @param {type} $
  4. * @param {type} window
  5. * @returns {undefined}
  6. */
  7. (function($, window) {
  8. /**
  9. * register back
  10. * @param {type} back
  11. * @returns {$.gestures}
  12. */
  13. $.addBack = function(back) {
  14. return $.addAction('backs', back);
  15. };
  16. /**
  17. * default
  18. */
  19. $.addBack({
  20. name: 'browser',
  21. index: 100,
  22. handle: function() {
  23. if (window.history.length > 1) {
  24. window.history.back();
  25. return true;
  26. }
  27. return false;
  28. }
  29. });
  30. /**
  31. * 后退
  32. */
  33. $.back = function() {
  34. if (typeof $.options.beforeback === 'function') {
  35. if ($.options.beforeback() === false) {
  36. return;
  37. }
  38. }
  39. $.doAction('backs');
  40. };
  41. window.addEventListener('tap', function(e) {
  42. var action = $.targets.action;
  43. if (action && action.classList.contains($.className('action-back'))) {
  44. $.back();
  45. $.targets.action = false;
  46. }
  47. });
  48. window.addEventListener('swiperight', function(e) {
  49. var detail = e.detail;
  50. if ($.options.swipeBack === true && Math.abs(detail.angle) < 3) {
  51. $.back();
  52. }
  53. });
  54. })(mui, window);