Merge branch 'develop' of http://git.dev.yoho.cn/web/yohobuy into develop
Showing
1 changed file
with
59 additions
and
55 deletions
@@ -16,8 +16,11 @@ var $ = require('jquery'), | @@ -16,8 +16,11 @@ var $ = require('jquery'), | ||
16 | var $chosePanel = $('#chose-panel'), | 16 | var $chosePanel = $('#chose-panel'), |
17 | $num, | 17 | $num, |
18 | $chosed, | 18 | $chosed, |
19 | + $imgsThumb, | ||
19 | 20 | ||
20 | // re = /\d+/, | 21 | // re = /\d+/, |
22 | + | ||
23 | + $leftNum, | ||
21 | leftNum, | 24 | leftNum, |
22 | confirming, | 25 | confirming, |
23 | curColorIndex, | 26 | curColorIndex, |
@@ -26,7 +29,10 @@ var $chosePanel = $('#chose-panel'), | @@ -26,7 +29,10 @@ var $chosePanel = $('#chose-panel'), | ||
26 | hasChooseColor, | 29 | hasChooseColor, |
27 | hasChooseSize, | 30 | hasChooseSize, |
28 | $curSizeBlock, | 31 | $curSizeBlock, |
29 | - $sizeRowList; | 32 | + $sizeRowList, |
33 | + cbFn, | ||
34 | + $allChoseItems, | ||
35 | + $yohoPage = $('.yoho-page'); | ||
30 | 36 | ||
31 | //初始化购物车面板显示 | 37 | //初始化购物车面板显示 |
32 | function init() { | 38 | function init() { |
@@ -35,12 +41,14 @@ function init() { | @@ -35,12 +41,14 @@ function init() { | ||
35 | hasChooseColor = false; | 41 | hasChooseColor = false; |
36 | hasChooseSize = false; | 42 | hasChooseSize = false; |
37 | $curSizeBlock = null; | 43 | $curSizeBlock = null; |
38 | - $sizeRowList = $('.size-list ul'); | 44 | + $imgsThumb = $('.chose-panel').find('.thumb'), |
45 | + $allChoseItems = $('.chose-items'), | ||
46 | + $sizeRowList = $('.size-list ul'), | ||
47 | + $leftNum = $('#left-num'), | ||
39 | $firstRow = $sizeRowList.eq(0); | 48 | $firstRow = $sizeRowList.eq(0); |
40 | $firstRow.toggleClass('hide'); | 49 | $firstRow.toggleClass('hide'); |
41 | $curSizeRow = $firstRow; | 50 | $curSizeRow = $firstRow; |
42 | } | 51 | } |
43 | -init(); | ||
44 | 52 | ||
45 | function checkColorSizeNum() { | 53 | function checkColorSizeNum() { |
46 | if (!hasChooseColor && !hasChooseSize) { | 54 | if (!hasChooseColor && !hasChooseSize) { |
@@ -56,32 +64,29 @@ function checkColorSizeNum() { | @@ -56,32 +64,29 @@ function checkColorSizeNum() { | ||
56 | return true; | 64 | return true; |
57 | } | 65 | } |
58 | 66 | ||
59 | -function show(html) { | 67 | +function show(html, cb) { |
60 | if (html) { | 68 | if (html) { |
61 | $chosePanel.html(html); | 69 | $chosePanel.html(html); |
62 | init(); | 70 | init(); |
63 | } | 71 | } |
64 | $('.chose-panel').show(); | 72 | $('.chose-panel').show(); |
65 | - | ||
66 | - $('body').css('overflow', 'hidden'); | ||
67 | $num = $('#good-num'); | 73 | $num = $('#good-num'); |
74 | + cbFn = cb; | ||
68 | } | 75 | } |
69 | 76 | ||
70 | //隐藏当前Panel | 77 | //隐藏当前Panel |
71 | function hide() { | 78 | function hide() { |
72 | $('.chose-panel').hide(); | 79 | $('.chose-panel').hide(); |
73 | - $('body').css('overflow', 'auto'); | 80 | + cbFn = null; |
74 | } | 81 | } |
75 | 82 | ||
76 | //修改加入购物车的文字和背景 | 83 | //修改加入购物车的文字和背景 |
77 | function updateConformButtonClassAndText() { | 84 | function updateConformButtonClassAndText() { |
78 | - $chosed = $('.chose-items').find('.chosed'); | 85 | + $chosed = $allChoseItems.find('.chosed'); |
79 | if (2 === $chosed.closest('.zero-stock').length) { | 86 | if (2 === $chosed.closest('.zero-stock').length) { |
80 | - $('#chose-btn-sure').css('background-color', '#c0c0c0'); | ||
81 | - $('#chose-btn-sure').html('已售罄'); | 87 | + $('#chose-btn-sure').css('background-color', '#c0c0c0').html('已售罄'); |
82 | } else { | 88 | } else { |
83 | - $('#chose-btn-sure').css('background-color', '#eb0313'); | ||
84 | - $('#chose-btn-sure').html('确定'); | 89 | + $('#chose-btn-sure').css('background-color', '#eb0313').html('确定'); |
85 | } | 90 | } |
86 | } | 91 | } |
87 | 92 | ||
@@ -92,11 +97,11 @@ function resetColorZeroStock($siblingBlock) { | @@ -92,11 +97,11 @@ function resetColorZeroStock($siblingBlock) { | ||
92 | 97 | ||
93 | if (!hasChooseSize) { | 98 | if (!hasChooseSize) { |
94 | $siblingBlock.find('ul>li').each(function() { | 99 | $siblingBlock.find('ul>li').each(function() { |
95 | - $(this).removeClass('zero-stock'); | ||
96 | - if ('0' === $(this).data('num')) { | ||
97 | - $(this).addClass('zero-stock'); | ||
98 | - } | ||
99 | - }); | 100 | + $(this).removeClass('zero-stock'); |
101 | + if ('0' === $(this).data('num')) { | ||
102 | + $(this).addClass('zero-stock'); | ||
103 | + } | ||
104 | + }); | ||
100 | 105 | ||
101 | } else { | 106 | } else { |
102 | for (i = 0; i < numArray.length; i++) { | 107 | for (i = 0; i < numArray.length; i++) { |
@@ -110,13 +115,13 @@ function resetColorZeroStock($siblingBlock) { | @@ -110,13 +115,13 @@ function resetColorZeroStock($siblingBlock) { | ||
110 | // 选择了颜色切换商品图片 | 115 | // 选择了颜色切换商品图片 |
111 | function changeGoodImgWhenClickColor() { | 116 | function changeGoodImgWhenClickColor() { |
112 | if (hasChooseColor && curColorIndex) { | 117 | if (hasChooseColor && curColorIndex) { |
113 | - $('.chose-panel').find('.thumb').addClass('hide').eq(curColorIndex).removeClass('hide'); | 118 | + $imgsThumb.addClass('hide').eq(curColorIndex).removeClass('hide'); |
114 | } | 119 | } |
115 | } | 120 | } |
116 | 121 | ||
117 | init(); | 122 | init(); |
118 | 123 | ||
119 | -$('.yoho-page').on('touchstart', '.chose-panel', function(e) { | 124 | +$yohoPage.on('touchstart', '.chose-panel', function(e) { |
120 | var $cur = $(e.target); | 125 | var $cur = $(e.target); |
121 | 126 | ||
122 | if ($cur.closest('.main').length > 0) { | 127 | if ($cur.closest('.main').length > 0) { |
@@ -127,12 +132,11 @@ $('.yoho-page').on('touchstart', '.chose-panel', function(e) { | @@ -127,12 +132,11 @@ $('.yoho-page').on('touchstart', '.chose-panel', function(e) { | ||
127 | hide(); | 132 | hide(); |
128 | }); | 133 | }); |
129 | 134 | ||
130 | -$('.color-list').on('touchstart', '.block', function(e) { | 135 | +$yohoPage.on('touchstart', '.color-list .block', function(e) { |
131 | var $this = $(this), | 136 | var $this = $(this), |
132 | - $that = $(e.target).closest('.chose-items'), | ||
133 | index, | 137 | index, |
134 | - curSelectedSizeBlock, | ||
135 | - $sizeChosed, | 138 | + curSizeBlock, |
139 | + $preSiblingBlock, | ||
136 | scindex, | 140 | scindex, |
137 | curGoodNum; | 141 | curGoodNum; |
138 | 142 | ||
@@ -141,16 +145,16 @@ $('.color-list').on('touchstart', '.block', function(e) { | @@ -141,16 +145,16 @@ $('.color-list').on('touchstart', '.block', function(e) { | ||
141 | $this.siblings('.chosed').removeClass('chosed'); | 145 | $this.siblings('.chosed').removeClass('chosed'); |
142 | index = $this.index(); | 146 | index = $this.index(); |
143 | 147 | ||
144 | - $sizeChosed = $siblingBlock.find('.chosed'); | ||
145 | - scindex = $sizeChosed.index(); | 148 | + $preSiblingBlock = $siblingBlock.find('.chosed'); |
149 | + scindex = $preSiblingBlock.index(); | ||
146 | $curSizeRow = $sizeRowList.eq(index); | 150 | $curSizeRow = $sizeRowList.eq(index); |
147 | 151 | ||
148 | // 当前颜色已经是选中状态,再点击时 | 152 | // 当前颜色已经是选中状态,再点击时 |
149 | if ($this.hasClass('chosed')) { | 153 | if ($this.hasClass('chosed')) { |
150 | 154 | ||
151 | //颜色原来已经是勾选时,要清空剩余件数的提示 | 155 | //颜色原来已经是勾选时,要清空剩余件数的提示 |
152 | - $that.find('.num .left-num').html(''); | ||
153 | - $('#left-num').val(0); | 156 | + $allChoseItems.find('.num .left-num').html(''); |
157 | + $leftNum.val(0); | ||
154 | hasChooseColor = false; | 158 | hasChooseColor = false; |
155 | 159 | ||
156 | // 当前颜色不是选中状态,选中时 | 160 | // 当前颜色不是选中状态,选中时 |
@@ -162,24 +166,25 @@ $('.color-list').on('touchstart', '.block', function(e) { | @@ -162,24 +166,25 @@ $('.color-list').on('touchstart', '.block', function(e) { | ||
162 | $curSizeRow.removeClass('hide').addClass('show'); | 166 | $curSizeRow.removeClass('hide').addClass('show'); |
163 | 167 | ||
164 | // 之前选中的尺码去掉勾选样式 | 168 | // 之前选中的尺码去掉勾选样式 |
165 | - if ($sizeChosed.length > 0) { | ||
166 | - $sizeChosed.removeClass('chosed'); | ||
167 | - curSelectedSizeBlock = $curSizeRow.children().get(scindex); | 169 | + if ($preSiblingBlock.length > 0) { |
170 | + $preSiblingBlock.removeClass('chosed'); | ||
171 | + | ||
168 | } | 172 | } |
169 | 173 | ||
174 | + curSizeBlock = $curSizeRow.children().get(scindex); | ||
175 | + | ||
170 | // 当前选中颜色对应的尺码行,其对应的尺码加上勾选样式 (前提是要判断下这个尺码是否存在) | 176 | // 当前选中颜色对应的尺码行,其对应的尺码加上勾选样式 (前提是要判断下这个尺码是否存在) |
171 | - if (curSelectedSizeBlock) { | ||
172 | - curGoodNum = $(curSelectedSizeBlock).data('num'); | ||
173 | - $(curSelectedSizeBlock).addClass('chosed'); | 177 | + if (curSizeBlock) { |
178 | + curGoodNum = $(curSizeBlock).data('num'); | ||
179 | + $(curSizeBlock).addClass('chosed'); | ||
174 | 180 | ||
175 | //如果当前有尺码被选中,且数量等于0,则颜色块添加数量为0的样式 | 181 | //如果当前有尺码被选中,且数量等于0,则颜色块添加数量为0的样式 |
176 | if (curGoodNum > 0) { | 182 | if (curGoodNum > 0) { |
177 | - $that.find('.num .left-num').html('剩余' + curGoodNum + '件'); | ||
178 | - $('#left-num').val(curGoodNum); | 183 | + $allChoseItems.find('.num .left-num').html('剩余' + curGoodNum + '件'); |
184 | + $leftNum.val(curGoodNum); | ||
179 | } else { | 185 | } else { |
180 | - $(curSelectedSizeBlock).removeClass('zero-stock').addClass('zero-stock'); | ||
181 | - $that.find('.num .left-num').html(''); | ||
182 | - $('#left-num').val(0); | 186 | + $allChoseItems.find('.num .left-num').html(''); |
187 | + $leftNum.val(0); | ||
183 | } | 188 | } |
184 | } | 189 | } |
185 | } | 190 | } |
@@ -195,9 +200,8 @@ $('.color-list').on('touchstart', '.block', function(e) { | @@ -195,9 +200,8 @@ $('.color-list').on('touchstart', '.block', function(e) { | ||
195 | changeGoodImgWhenClickColor(); | 200 | changeGoodImgWhenClickColor(); |
196 | }); | 201 | }); |
197 | 202 | ||
198 | -$('.size-list').on('touchstart', '.block', function(e) { | 203 | +$yohoPage.on('touchstart', '.size-list .block', function(e) { |
199 | var $this = $(this), | 204 | var $this = $(this), |
200 | - $that = $(e.target).closest('.chose-items'), | ||
201 | index, | 205 | index, |
202 | curGoodNum; | 206 | curGoodNum; |
203 | 207 | ||
@@ -211,7 +215,7 @@ $('.size-list').on('touchstart', '.block', function(e) { | @@ -211,7 +215,7 @@ $('.size-list').on('touchstart', '.block', function(e) { | ||
211 | if ($this.hasClass('chosed')) { | 215 | if ($this.hasClass('chosed')) { |
212 | 216 | ||
213 | //尺码原来已经是勾选时,要清空剩余件数的提示 | 217 | //尺码原来已经是勾选时,要清空剩余件数的提示 |
214 | - $that.find('.num .left-num').html(''); | 218 | + $allChoseItems.find('.num .left-num').html(''); |
215 | $('#left-num').val(0); | 219 | $('#left-num').val(0); |
216 | hasChooseSize = false; | 220 | hasChooseSize = false; |
217 | 221 | ||
@@ -226,12 +230,12 @@ $('.size-list').on('touchstart', '.block', function(e) { | @@ -226,12 +230,12 @@ $('.size-list').on('touchstart', '.block', function(e) { | ||
226 | $curSizeBlock.removeClass('chosed'); | 230 | $curSizeBlock.removeClass('chosed'); |
227 | } | 231 | } |
228 | 232 | ||
229 | - // 如果当前有尺码被选中,且数量等于0,则颜色块添加数量为0的样式, 否则显示剩余件数 | 233 | + // 如果当前有尺码被选中,且数量等于0, 否则显示剩余件数 |
230 | if (curGoodNum > 0 && hasChooseColor) { | 234 | if (curGoodNum > 0 && hasChooseColor) { |
231 | - $that.find('.num .left-num').html('剩余' + curGoodNum + '件'); | 235 | + $allChoseItems.find('.num .left-num').html('剩余' + curGoodNum + '件'); |
232 | $('#left-num').val(curGoodNum); | 236 | $('#left-num').val(curGoodNum); |
233 | } else { | 237 | } else { |
234 | - $that.find('.num .left-num').html(''); | 238 | + $allChoseItems.find('.num .left-num').html(''); |
235 | $('#left-num').val(0); | 239 | $('#left-num').val(0); |
236 | } | 240 | } |
237 | 241 | ||
@@ -249,8 +253,8 @@ $('.size-list').on('touchstart', '.block', function(e) { | @@ -249,8 +253,8 @@ $('.size-list').on('touchstart', '.block', function(e) { | ||
249 | 253 | ||
250 | }); | 254 | }); |
251 | 255 | ||
252 | -$('.btn-minus').on('touchstart', function() { | ||
253 | - var num = $num.val(); | 256 | +$yohoPage.on('touchstart', '.btn-minus', function() { |
257 | + var num = parseInt($num.val(), 10); | ||
254 | 258 | ||
255 | leftNum = $('#left-num').val(); | 259 | leftNum = $('#left-num').val(); |
256 | 260 | ||
@@ -263,10 +267,8 @@ $('.btn-minus').on('touchstart', function() { | @@ -263,10 +267,8 @@ $('.btn-minus').on('touchstart', function() { | ||
263 | } | 267 | } |
264 | 268 | ||
265 | $num.val(num - 1); | 269 | $num.val(num - 1); |
266 | -}); | ||
267 | - | ||
268 | -$('.btn-plus').on('touchstart', function() { | ||
269 | - var num = $num.val(); | 270 | +}).on('touchstart', '.btn-plus', function() { |
271 | + var num = parseInt($num.val(), 10); | ||
270 | 272 | ||
271 | leftNum = $('#left-num').val(); | 273 | leftNum = $('#left-num').val(); |
272 | 274 | ||
@@ -281,9 +283,7 @@ $('.btn-plus').on('touchstart', function() { | @@ -281,9 +283,7 @@ $('.btn-plus').on('touchstart', function() { | ||
281 | 283 | ||
282 | //TODO:库存数验证 | 284 | //TODO:库存数验证 |
283 | $num.val(num + 1); | 285 | $num.val(num + 1); |
284 | -}); | ||
285 | - | ||
286 | -$('#chose-btn-sure').on('touchstart', function() { | 286 | +}).on('touchstart', '#chose-btn-sure', function() { |
287 | 287 | ||
288 | var productSku, | 288 | var productSku, |
289 | buyNumber = $('#good-num').val() - 0, | 289 | buyNumber = $('#good-num').val() - 0, |
@@ -298,6 +298,7 @@ $('#chose-btn-sure').on('touchstart', function() { | @@ -298,6 +298,7 @@ $('#chose-btn-sure').on('touchstart', function() { | ||
298 | return; | 298 | return; |
299 | } | 299 | } |
300 | 300 | ||
301 | + //TODO status change | ||
301 | if ($('#chose-btn-sure').html() === '已售罄') { | 302 | if ($('#chose-btn-sure').html() === '已售罄') { |
302 | return; | 303 | return; |
303 | } | 304 | } |
@@ -332,10 +333,13 @@ $('#chose-btn-sure').on('touchstart', function() { | @@ -332,10 +333,13 @@ $('#chose-btn-sure').on('touchstart', function() { | ||
332 | }).done(function(res) { | 333 | }).done(function(res) { |
333 | loading.hideLoadingMask(); | 334 | loading.hideLoadingMask(); |
334 | if (res.code === 200) { | 335 | if (res.code === 200) { |
335 | - $('.num-tag').html(numInCart + buyNumber); | ||
336 | - $('.num-tag').removeClass('hide'); | 336 | + $('.num-tag').html(numInCart + buyNumber).removeClass('hide'); |
337 | confirming = false; | 337 | confirming = false; |
338 | hide(); | 338 | hide(); |
339 | + | ||
340 | + if (cbFn) { | ||
341 | + cbFn(res.location); | ||
342 | + } | ||
339 | } | 343 | } |
340 | if (res.message) { | 344 | if (res.message) { |
341 | tip.show(res.message); | 345 | tip.show(res.message); |
-
Please register or login to post a comment