|
|
/**
|
|
|
* “你可能喜欢”模块JS
|
|
|
* @author: xuqi(qi.xu@yoho.cn)
|
|
|
* @date: 2015/7/15
|
|
|
*/
|
|
|
|
|
|
var $ = require('jquery'),
|
|
|
Mustache = require('mustache'),
|
|
|
lazyLoad = require('./lazyload');
|
|
|
|
|
|
var winH = $(window).height(),
|
|
|
loading = false,
|
|
|
end = false,
|
|
|
page = 1,
|
|
|
tpl;
|
|
|
|
|
|
//read good-info template
|
|
|
$.get('/common/goodinfo', function(data) {
|
|
|
tpl = '{{# goods}}' + data + '{{/ goods}}';
|
|
|
Mustache.parse(tpl);
|
|
|
});
|
|
|
|
|
|
var isLogin = 'Y'; //TODO:是否登录,后台提供,区分走Ajax还是页面跳转
|
|
|
//商品收藏
|
|
|
$('.goods-list').delegate('.good-islike', 'touchstart', function(e) {
|
|
|
var $cur, $good, id, url;
|
|
|
|
|
|
if (isLogin === 'Y') {
|
|
|
e.preventDefault(); // 阻止链接跳转改AJAX
|
|
|
|
|
|
$cur = $(e.currentTarget);
|
|
|
$good = $cur.closest('.good-info');
|
|
|
id = $good.data('id');
|
|
|
|
|
|
if ($cur.hasClass('good-like')) {
|
|
|
url = '/goods/cancelprise';
|
|
|
} else {
|
|
|
url = '/goods/prise';
|
|
|
}
|
|
|
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: url,
|
|
|
data: {
|
|
|
product_skn: id
|
|
|
}
|
|
|
}).then(function(data) {
|
|
|
if (data.code === 200) {
|
|
|
$cur.toggleClass('good-like');
|
|
|
} else if (data.code === 400) {
|
|
|
//TODO:提示登录
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
|
|
|
var $maybeLike = $('.maybe-like:last'),
|
|
|
$goodList = $maybeLike.children('.goods-list'),
|
|
|
mblTop = $maybeLike.offset().top; //页面内容固定,可以预先求出高度
|
|
|
|
|
|
//srcoll to load more
|
|
|
$(window).scroll(function() {
|
|
|
var num;
|
|
|
if (end || loading) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if ($(window).scrollTop() + winH < mblTop + $maybeLike.height()) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
loading = true;
|
|
|
num = $goodList.children('.good-info').length;
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/goods/more',
|
|
|
data: {
|
|
|
gender: 0, //性别
|
|
|
page: page + 1
|
|
|
}
|
|
|
}).then(function(data) {
|
|
|
var res,
|
|
|
i;
|
|
|
if (data.code === 200) {
|
|
|
res = data.data;
|
|
|
|
|
|
if (res.end) {
|
|
|
end = res.end;
|
|
|
}
|
|
|
|
|
|
$goodList.append(Mustache.render(tpl, {
|
|
|
goods: res.goods
|
|
|
}));
|
|
|
|
|
|
//lazyLoad
|
|
|
lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
|
|
|
|
|
|
loading = false;
|
|
|
page++;
|
|
|
}
|
|
|
});
|
|
|
}); |
|
|
\ No newline at end of file |
...
|
...
|
|