common.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. var Common = {
  2. content: 'index',
  3. id: 0,
  4. init: function() {
  5. this.getParams(location.href);
  6. $(document).on('click', '.pjax', function() {
  7. var url = $(this).attr('href');
  8. Common.getParams('/' + url);
  9. Common.getContent();
  10. history.pushState(undefined, undefined, url);
  11. return false;
  12. });
  13. },
  14. getParams: function(url) {
  15. var url = url.match(/\/(\w+)(?:-(\d+))?\.html/);
  16. if (url !== null) {
  17. this.content = url[1];
  18. this.id = url[2] === undefined ? 0 : url[2];
  19. }
  20. },
  21. getContent: function() {
  22. var content = this.content;
  23. var categoryList = $('#category_list');
  24. var categoryShow = $('#category_show');
  25. $.ajax({
  26. type: 'GET', url: 'content/' + content + '.html', cache: false,
  27. success: function (data) {
  28. if (content === 'index') {
  29. categoryList.show();
  30. categoryShow.off('mouseenter').off('mouseleave');
  31. } else {
  32. categoryList.hide();
  33. categoryShow.hover(function () {
  34. categoryList.show();
  35. }, function() {
  36. categoryList.hide();
  37. });
  38. }
  39. $('#content').html(data);
  40. }
  41. });
  42. $.get(Config.api + 'categories?view=nav', function (data) {
  43. var html = template('category_list_tpl', {item: data});
  44. categoryList.html(html);
  45. $('.category-item').hover(function () {
  46. $(this).find('.category-sub').show();
  47. $(this).children('.category-main').children('a').addClass('on');
  48. }, function () {
  49. $(this).find('.category-sub').hide();
  50. $(this).children('.category-main').children('a').removeClass('on');
  51. });
  52. });
  53. },
  54. itemPicPath: function(data) {
  55. for (var i in data) {
  56. if (data[i].pic === '') {
  57. data[i].pic = 'img/preview.jpg';
  58. } else {
  59. data[i].pic = Config.uploadURL + data[i].pic;
  60. }
  61. }
  62. },
  63. itemAlbumPath: function(data) {
  64. for (var i in data) {
  65. data[i] = Config.uploadURL + data[i].replace('[prefix]', 'album_small_');
  66. }
  67. },
  68. slidePath: function(data) {
  69. for (var i in data) {
  70. data[i].pic = Config.uploadURL + data[i].pic;
  71. }
  72. },
  73. addCart: function(id, num) {
  74. id = parseInt(id);
  75. num = parseInt(num);
  76. var data = this.getCart();
  77. var found = false;
  78. for (var i in data) {
  79. if (data[i].id === id) {
  80. found = i;
  81. break;
  82. }
  83. }
  84. if (found === false) {
  85. data.unshift({id: id, num: num});
  86. } else {
  87. data[found].num += num;
  88. }
  89. localStorage.setItem('shop_front_cart', JSON.stringify(data));
  90. },
  91. getCart: function() {
  92. var data = JSON.parse(localStorage.getItem('shop_front_cart'));
  93. return data === null ? [] : data;
  94. },
  95. editCart: function(id, num) {
  96. id = parseInt(id);
  97. num = parseInt(num);
  98. var data = this.getCart();
  99. for (var i in data) {
  100. if (data[i].id === id) {
  101. data[i].num = num;
  102. if (num <= 0) {
  103. data.splice(i, 1);
  104. }
  105. break;
  106. }
  107. }
  108. localStorage.setItem('shop_front_cart', JSON.stringify(data));
  109. }
  110. };
  111. Common.init();
  112. Common.getContent();