game.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. var M = {
  2. ver : 1,
  3. os : 5,
  4. channel : "web",
  5. sortType : 1,
  6. gameType : 1, //1:全部2:某类型
  7. domain : "http://ms-api.duowan.com",
  8. recommendCache : {},
  9. //获取所有游戏类别
  10. getAllCategory : function(){
  11. var url = M.domain+"/category/all.do";
  12. var data = {
  13. channel: M.channel,
  14. ver: M.ver,
  15. os: M.os
  16. };
  17. $.ajax({
  18. url: url,
  19. dataType: 'jsonp',
  20. data: data,
  21. success: function(ret){
  22. V.renderAllCategory(ret.data);
  23. },
  24. error: function(ret){
  25. M.getAllCategory();
  26. }
  27. });
  28. },
  29. //获取所有游戏列表
  30. getAllGame : function(){
  31. var url = M.domain+"/mobileGame/all.do";
  32. var data = {
  33. channel: M.channel,
  34. ver: M.ver,
  35. os: M.os,
  36. sortType: M.sortType
  37. };
  38. var gameFlag = "all"+M.sortType;
  39. if (M.recommendCache.hasOwnProperty(gameFlag)) {
  40. V.showGameList(gameFlag);
  41. return;
  42. }
  43. $.ajax({
  44. url: url,
  45. dataType: 'jsonp',
  46. data: data,
  47. success: function(ret){
  48. M.recommendCache[gameFlag] = true;
  49. ret.data.role = gameFlag;
  50. V.renderGameList(ret.data,gameFlag);
  51. },
  52. error: function(ret){
  53. M.getAllGame();
  54. }
  55. });
  56. },
  57. //由推荐类型获取推荐游戏列表
  58. getRecommendByCategory : function(){
  59. var url = M.domain+"/mobileGame/byCategory.do";
  60. var data = {
  61. categoryId: M.categoryId,
  62. sortType: M.sortType,
  63. channel: M.channel,
  64. ver: M.ver,
  65. os: M.os
  66. };
  67. var gameFlag = "category"+M.categoryId+M.sortType;
  68. if (M.recommendCache.hasOwnProperty(gameFlag)) {
  69. V.showGameList(gameFlag);
  70. return;
  71. }
  72. $.ajax({
  73. url: url,
  74. dataType: 'jsonp',
  75. data: data,
  76. success: function(ret){
  77. M.recommendCache[gameFlag] = true;
  78. ret.data.role = gameFlag;
  79. V.renderGameList(ret.data,gameFlag);
  80. },
  81. error: function(ret){
  82. M.getRecommendByCategory();
  83. }
  84. });
  85. }
  86. }
  87. var V = {
  88. init : function(){
  89. M.os = commonUtil.checkPlatform();
  90. M.getAllCategory();
  91. M.getAllGame();
  92. },
  93. renderRecommenderType : function(data){
  94. var list = data.list;
  95. var len = list.length;
  96. var dom = "";
  97. for (var i=0; i<len; i++){
  98. dom += '<option value="'+list[i]["id"]+'">'+list[i]["typeName"]+'</option>';
  99. }
  100. $("#recommendTypeWrap").html(dom);
  101. },
  102. renderAllCategory : function(data){
  103. var list = data.list;
  104. var len = list.length;
  105. var dom = "";
  106. for (var i=0; i<len; i++){
  107. dom += '<li data-id="'+list[i].id+'">'+list[i].categoryName+'</li>';
  108. }
  109. $("#categoryWrap").append(dom);
  110. },
  111. renderGameList : function(data,role){
  112. var bannerTpl = __inline('../../tpl/simulatorGameList.tmpl');
  113. var dom = bannerTpl({
  114. data : data
  115. });
  116. $("#gameWrap .list-panel").addClass("u-hide");
  117. $("#gameWrap").append(dom);
  118. var PageTurn = new commonUtil.PageTurn({
  119. element : '[data-role='+role+']',
  120. showNum : 18
  121. });
  122. },
  123. showGameList : function(index){
  124. $("#gameWrap [data-role="+index+"]").removeClass("u-hide").siblings().addClass("u-hide");
  125. }
  126. }
  127. var C = {
  128. init : function(){
  129. //游戏排序
  130. var select = new commonUtil.Select({
  131. element : ".select-wrap",
  132. callback : function(val){
  133. M.sortType = val;
  134. if (M.gameType == 1) {
  135. M.getAllGame();
  136. } else {
  137. M.getRecommendByCategory();
  138. }
  139. }
  140. });
  141. //推荐位游戏
  142. $("#categoryWrap").on("click","li",function(){
  143. var $this = $(this);
  144. var id = $this.attr("data-id");
  145. $this.addClass("active").siblings().removeClass("active");
  146. if (id=="all") {
  147. M.gameType = 1;
  148. M.getAllGame();
  149. } else {
  150. M.categoryId = id;
  151. M.gameType = 2;
  152. M.getRecommendByCategory();
  153. }
  154. });
  155. //菜单展开
  156. var $btnSel = $(".btn-select");
  157. var $menuWrap = $(".menu-wrap");
  158. $btnSel.on("click",function(){
  159. var $this = $(this);
  160. if ($this.hasClass("opened")) {
  161. $this.removeClass("opened");
  162. $menuWrap.removeClass("opened");
  163. } else {
  164. $this.addClass("opened");
  165. $menuWrap.addClass("opened");
  166. }
  167. });
  168. $menuWrap.on("mouseleave",function(){
  169. var $this = $(this);
  170. if ($this.hasClass("opened")) {
  171. $this.removeClass("opened");
  172. $btnSel.removeClass("opened");
  173. }
  174. });
  175. }
  176. }
  177. C.init();
  178. V.init();