...
|
...
|
@@ -399,7 +399,8 @@ function getSource(column, postition, event) { |
|
|
} catch (e) {}
|
|
|
}
|
|
|
|
|
|
function submitSearch() {
|
|
|
|
|
|
window.submitSearch = function() {
|
|
|
var $keywordinput = $('#query_key').val();
|
|
|
var column = 'Search';
|
|
|
var postition = 'Head Search';
|
...
|
...
|
@@ -421,6 +422,7 @@ function submitSearch() { |
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 定义购物车扩展
|
|
|
*/
|
...
|
...
|
@@ -509,7 +511,7 @@ function actionGoodsCart() { |
|
|
listIndex = (listIndex + 1) % queryNum;
|
|
|
getText(this);
|
|
|
} else if (event.which === 13) {
|
|
|
submitSearch();
|
|
|
window.submitSearch();
|
|
|
} else {
|
|
|
getKeywords(this);
|
|
|
}
|
...
|
...
|
@@ -1830,358 +1832,367 @@ require("js/product/filter"); |
|
|
|
|
|
require("js/product/sort-pager");
|
|
|
|
|
|
require("js/product/latest-walk");
|
|
|
|
|
|
require("js/product/product");
|
|
|
});
|
|
|
define("js/product/filter", ["jquery","handlebars","source-map"], function(require, exports, module){
|
|
|
/**
|
|
|
* 商品筛选逻辑
|
|
|
* @author: xuqi<qi.xu@yoho.cn>
|
|
|
* @date: 2015/12/4
|
|
|
*/
|
|
|
|
|
|
var $ = require("jquery"),
|
|
|
Handlebars = require("handlebars");
|
|
|
|
|
|
var checkUnicode = {
|
|
|
unchecked: '',
|
|
|
checked: ''
|
|
|
},
|
|
|
moreUnicode = {
|
|
|
up: '',
|
|
|
down: ''
|
|
|
};
|
|
|
|
|
|
//品牌相关变量
|
|
|
var $brandDefault = $('.brand .default'),
|
|
|
$brandPanel = $('.brand .brand-panel'),
|
|
|
$brandAttrs = $brandPanel.find('.attr'),
|
|
|
$brandMore = $('#brand-more'),
|
|
|
$brandMulti = $('#brand-multi');
|
|
|
|
|
|
var $brandMoreTxt, $brandMoreIcon;
|
|
|
|
|
|
//价格相关变量
|
|
|
var $udPrice = $('.ud-price-range'),
|
|
|
interReg = /^\d+$/,
|
|
|
$limit, $min, $max, $btn;
|
|
|
|
|
|
//分类相关变量
|
|
|
var $sortSub = $('.sort-sub-wrap');
|
|
|
|
|
|
//高级选项相关变量
|
|
|
var $seniorSubWrap = $('.senior-sub-wrap'),
|
|
|
$seniorAttrWrap = $('.senior-attr-wrap');
|
|
|
|
|
|
var seniorHoverTime, hoveredIndex;
|
|
|
|
|
|
// 尺寸 handlebars 模板
|
|
|
var sizeTmpl = '{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}',
|
|
|
sizeCache = {}, // 缓存一下尺寸信息
|
|
|
$sizeWrap = $('.filter-box .size');
|
|
|
|
|
|
sizeTmpl = Handlebars.compile(sizeTmpl);
|
|
|
|
|
|
//清除checkbox选中状态
|
|
|
function clearChecked($checkbox) {
|
|
|
$checkbox.removeClass('checked').html(checkUnicode.unchecked);
|
|
|
}
|
|
|
|
|
|
//显示更多品牌面板
|
|
|
function brandShowMore() {
|
|
|
$brandDefault.addClass('hide');
|
|
|
$brandPanel.removeClass('hide');
|
|
|
}
|
|
|
|
|
|
//隐藏更多品牌面板
|
|
|
function brandHideMore() {
|
|
|
$brandPanel.addClass('hide');
|
|
|
$brandDefault.removeClass('hide');
|
|
|
}
|
|
|
|
|
|
//url构造&跳转
|
|
|
function uriLoc(attr, val) {
|
|
|
var href = decodeURIComponent(window.location.search),
|
|
|
query = attr + '=' + val,
|
|
|
newHref;
|
|
|
|
|
|
if (href === '') {
|
|
|
newHref = '?' + query;
|
|
|
} else {
|
|
|
newHref = href + '&' + query;
|
|
|
}
|
|
|
|
|
|
window.location.href = newHref;
|
|
|
}
|
|
|
|
|
|
//隐藏高级选项面板
|
|
|
function hideSeniorPanel(index) {
|
|
|
$seniorSubWrap.children('.senior-sub:eq(' + hoveredIndex + ')').addClass('hide');
|
|
|
$seniorAttrWrap.children('.attr:eq(' + hoveredIndex + ')').removeClass('hover');
|
|
|
hoveredIndex = -1;
|
|
|
}
|
|
|
|
|
|
//屏蔽筛选项双击文字选中
|
|
|
$('.filter-box').on('selectstart', '.attr, .brands-index span', function() {
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
//【分类】
|
|
|
$('.sort-pre').on('click', 'li', function() {
|
|
|
var $this = $(this),
|
|
|
index = $this.index(),
|
|
|
id = $this.data('id');
|
|
|
|
|
|
if ($this.hasClass('active')) {
|
|
|
|
|
|
// 选中时,再次点击取消选中
|
|
|
$this.removeClass('active');
|
|
|
$sortSub.children(':eq(' + index + ')').addClass('hide');
|
|
|
$sizeWrap.addClass('hide');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$this.siblings('.active').removeClass('active');
|
|
|
$this.addClass('active');
|
|
|
|
|
|
$sortSub.children(':not(.hide)').addClass('hide');
|
|
|
$sortSub.children(':eq(' + index + ')').removeClass('hide');
|
|
|
|
|
|
if (sizeCache[id]) {
|
|
|
$sizeWrap.find('.attr-content').html(sizeCache[id]);
|
|
|
$sizeWrap.removeClass('hide');
|
|
|
} else {
|
|
|
$.ajax({
|
|
|
url: '/product/search/sortSize',
|
|
|
data: {
|
|
|
msort: id
|
|
|
}
|
|
|
}).then(function(res) {
|
|
|
if ($.type(res) === 'array' && res.length) {
|
|
|
sizeCache[id] = sizeTmpl({
|
|
|
size: res
|
|
|
});
|
|
|
$sizeWrap.find('.attr-content').html(sizeCache[id]);
|
|
|
$sizeWrap.removeClass('hide');
|
|
|
} else {
|
|
|
$sizeWrap.addClass('hide');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌】
|
|
|
if ($brandMore.length > 0) {
|
|
|
$brandMoreTxt = $brandMore.children('em');
|
|
|
$brandMoreIcon = $brandMore.children('.iconfont');
|
|
|
}
|
|
|
|
|
|
//【品牌】多选
|
|
|
$brandMulti.click(function() {
|
|
|
if ($brandPanel.css('display') === 'none') {
|
|
|
|
|
|
//显示品牌面板
|
|
|
$brandMore.trigger('click');
|
|
|
}
|
|
|
|
|
|
$brandPanel.addClass('multi'); //显示出checkbox
|
|
|
$(this).addClass('hide');
|
|
|
});
|
|
|
|
|
|
//【品牌】更多
|
|
|
$brandMore.click(function() {
|
|
|
var $this = $(this);
|
|
|
|
|
|
if ($this.hasClass('more')) {
|
|
|
brandHideMore();
|
|
|
|
|
|
$brandMoreTxt.text('更多');
|
|
|
$brandMoreIcon.html(moreUnicode.down);
|
|
|
} else {
|
|
|
brandShowMore();
|
|
|
|
|
|
$brandMoreTxt.text('收起');
|
|
|
$brandMoreIcon.html(moreUnicode.up);
|
|
|
}
|
|
|
|
|
|
$(this).toggleClass('more');
|
|
|
});
|
|
|
|
|
|
//【品牌】索引
|
|
|
$('.brands-index').on('mouseenter', 'span', function() {
|
|
|
var $this = $(this),
|
|
|
index = $this.data('index');
|
|
|
|
|
|
if ($this.hasClass('hover')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$this.siblings('span.hover').removeClass('hover');
|
|
|
$this.addClass('hover');
|
|
|
|
|
|
if ($this.index() === 0) {
|
|
|
|
|
|
//全部
|
|
|
$brandAttrs.removeClass('hide');
|
|
|
} else {
|
|
|
$brandAttrs.addClass('hide').filter('[data-index=' + index + ']').removeClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌】搜索
|
|
|
$('#brand-search-input').keyup(function() {
|
|
|
var val = $(this).val().toLowerCase();
|
|
|
|
|
|
if (val === '') {
|
|
|
$brandAttrs.removeClass('hide');
|
|
|
} else {
|
|
|
$brandAttrs.addClass('hide').filter('[data-key*="' + val + '"]').removeClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌】多选确定
|
|
|
$('#brand-multi-ok').click(function() {
|
|
|
var val = '';
|
|
|
|
|
|
if ($(this).hasClass('dis')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$brandPanel.find('.checked').each(function() {
|
|
|
var id = $(this).data('id');
|
|
|
|
|
|
val += (val === '') ? id : (',' + id);
|
|
|
});
|
|
|
|
|
|
uriLoc('brand', val);
|
|
|
});
|
|
|
|
|
|
//【品牌/高级选项】多选取消
|
|
|
$('.multi-select-cancel').click(function() {
|
|
|
var $panel = $(this).closest('.multi');
|
|
|
|
|
|
if ($panel.hasClass('brand-panel')) {
|
|
|
|
|
|
$brandMulti.removeClass('hide'); //显示多选按钮
|
|
|
$brandMore.trigger('click');
|
|
|
}
|
|
|
|
|
|
$panel.removeClass('multi');
|
|
|
clearChecked($panel.find('.checkbox.checked')); //清除选中状态
|
|
|
});
|
|
|
|
|
|
//【品牌/高级选项】checkbox
|
|
|
$('.check-container').on('click', '.attr', function() {
|
|
|
var $this = $(this),
|
|
|
$check = $this.find('.checkbox'),
|
|
|
$btnOk = $this.closest('.brand-panel, .senior-sub').find('.multi-select-ok');
|
|
|
|
|
|
$check.toggleClass('checked');
|
|
|
|
|
|
if ($check.hasClass('checked')) {
|
|
|
$check.html(checkUnicode.checked);
|
|
|
} else {
|
|
|
$check.html(checkUnicode.unchecked);
|
|
|
}
|
|
|
|
|
|
//更新按钮状态
|
|
|
if ($check.hasClass('checked') ||
|
|
|
$this.siblings('.attr').find('.checked').length > 0) {
|
|
|
$btnOk.removeClass('dis');
|
|
|
} else {
|
|
|
$btnOk.addClass('dis');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌/高级选项】当多选时阻止链接默认跳转
|
|
|
$('.brand, .senior').on('click', '.attr > a', function(e) {
|
|
|
if ($(this).closest('.multi').length > 0) {
|
|
|
e.preventDefault();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【价格】用户定义价格处理
|
|
|
if ($udPrice.length > 0) {
|
|
|
$limit = $udPrice.find('.limit');
|
|
|
$min = $limit.filter('.min');
|
|
|
$max = $limit.filter('.max');
|
|
|
$btn = $udPrice.find('.price-sure');
|
|
|
|
|
|
//【价格】输入
|
|
|
$limit.keyup(function() {
|
|
|
var min = $.trim($min.val()),
|
|
|
max = $.trim($max.val()),
|
|
|
isMinInt = interReg.test(min),
|
|
|
isMaxInt = interReg.test(max);
|
|
|
|
|
|
if (isMaxInt && (min === '' || isMinInt) ||
|
|
|
isMinInt && (max === '' || isMaxInt)
|
|
|
) {
|
|
|
$btn.removeClass('hide');
|
|
|
} else {
|
|
|
$btn.addClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【价格】多项查询
|
|
|
$btn.click(function() {
|
|
|
var min = $.trim($min.val()),
|
|
|
max = $.trim($max.val()),
|
|
|
tmp;
|
|
|
|
|
|
//对于min大于max的情况,交换位置
|
|
|
if (min !== '' && max !== '' && +min > +max) {
|
|
|
tmp = max;
|
|
|
max = min;
|
|
|
min = tmp;
|
|
|
}
|
|
|
|
|
|
uriLoc('price', min + ',' + max);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//【高级选项】鼠标移入显示子项
|
|
|
$seniorAttrWrap.on('mouseenter', '.attr', function() {
|
|
|
var $this = $(this);
|
|
|
var index = $this.index();
|
|
|
|
|
|
$this.addClass('hover').siblings().removeClass('hover');
|
|
|
|
|
|
$seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide').siblings().addClass('hide');
|
|
|
}).on('mouseleave', '.attr', function() {
|
|
|
var $this = $(this),
|
|
|
index = $this.index();
|
|
|
|
|
|
hoveredIndex = index;
|
|
|
|
|
|
seniorHoverTime = setTimeout(function() {
|
|
|
hideSeniorPanel();
|
|
|
}, 100);
|
|
|
});
|
|
|
|
|
|
//【高级选项】多选
|
|
|
$('.senior-sub').on('click', '.multi-select', function() {
|
|
|
$(this).closest('.senior-sub').addClass('multi');
|
|
|
}).on('click', '.multi-select-ok', function() {
|
|
|
var $btn = $(this),
|
|
|
$sub = $btn.closest('.senior-sub'),
|
|
|
val = '';
|
|
|
|
|
|
if ($btn.hasClass('dis')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$sub.find('.checked').each(function() {
|
|
|
var id = $(this).data('id');
|
|
|
|
|
|
val += (val === '') ? id : (',' + id);
|
|
|
});
|
|
|
|
|
|
uriLoc($sub.data('attr'), val);
|
|
|
}).on('mouseenter', function() {
|
|
|
clearTimeout(seniorHoverTime);
|
|
|
}).on('mouseleave', function() {
|
|
|
hideSeniorPanel();
|
|
|
});
|
|
|
/**
|
|
|
* 商品筛选逻辑
|
|
|
* @author: xuqi<qi.xu@yoho.cn>
|
|
|
* @date: 2015/12/4
|
|
|
*/
|
|
|
|
|
|
var $ = require("jquery"),
|
|
|
Handlebars = require("handlebars");
|
|
|
|
|
|
var checkUnicode = {
|
|
|
unchecked: '',
|
|
|
checked: ''
|
|
|
},
|
|
|
moreUnicode = {
|
|
|
up: '',
|
|
|
down: ''
|
|
|
};
|
|
|
|
|
|
//品牌相关变量
|
|
|
var $brandDefault = $('.brand .default'),
|
|
|
$brandPanel = $('.brand .brand-panel'),
|
|
|
$brandAttrs = $brandPanel.find('.attr'),
|
|
|
$brandMore = $('#brand-more'),
|
|
|
$brandMulti = $('#brand-multi');
|
|
|
|
|
|
var $brandMoreTxt, $brandMoreIcon;
|
|
|
|
|
|
//价格相关变量
|
|
|
var $udPrice = $('.ud-price-range'),
|
|
|
interReg = /^\d+$/,
|
|
|
$limit, $min, $max, $btn;
|
|
|
|
|
|
//分类相关变量
|
|
|
var $sortSub = $('.sort-sub-wrap');
|
|
|
|
|
|
//高级选项相关变量
|
|
|
var $seniorSubWrap = $('.senior-sub-wrap'),
|
|
|
$seniorAttrWrap = $('.senior-attr-wrap');
|
|
|
|
|
|
var seniorHoverTime, hoveredIndex;
|
|
|
|
|
|
// 尺寸 handlebars 模板
|
|
|
var sizeTmpl = '{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}',
|
|
|
sizeCache = {}, // 缓存一下尺寸信息
|
|
|
$sizeWrap = $('.filter-box .size');
|
|
|
|
|
|
sizeTmpl = Handlebars.compile(sizeTmpl);
|
|
|
|
|
|
//清除checkbox选中状态
|
|
|
function clearChecked($checkbox) {
|
|
|
$checkbox.removeClass('checked').html(checkUnicode.unchecked);
|
|
|
}
|
|
|
|
|
|
//显示更多品牌面板
|
|
|
function brandShowMore() {
|
|
|
$brandDefault.addClass('hide');
|
|
|
$brandPanel.removeClass('hide');
|
|
|
}
|
|
|
|
|
|
//隐藏更多品牌面板
|
|
|
function brandHideMore() {
|
|
|
$brandPanel.addClass('hide');
|
|
|
$brandDefault.removeClass('hide');
|
|
|
}
|
|
|
|
|
|
//url构造&跳转
|
|
|
function uriLoc(attr, val) {
|
|
|
var href = decodeURIComponent(window.location.search),
|
|
|
query = attr + '=' + val,
|
|
|
newHref;
|
|
|
|
|
|
if (href === '') {
|
|
|
newHref = '?' + query;
|
|
|
} else {
|
|
|
newHref = href + '&' + query;
|
|
|
}
|
|
|
|
|
|
window.location.href = newHref;
|
|
|
}
|
|
|
|
|
|
//隐藏高级选项面板
|
|
|
function hideSeniorPanel(index) {
|
|
|
$seniorSubWrap.children('.senior-sub:eq(' + hoveredIndex + ')').addClass('hide');
|
|
|
$seniorAttrWrap.children('.attr:eq(' + hoveredIndex + ')').removeClass('hover');
|
|
|
hoveredIndex = -1;
|
|
|
}
|
|
|
|
|
|
//屏蔽筛选项双击文字选中
|
|
|
$('.filter-box').on('selectstart', '.attr, .brands-index span', function() {
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
//【分类】
|
|
|
$('.sort-pre').on('click', 'li', function() {
|
|
|
var $this = $(this),
|
|
|
index = $this.index(),
|
|
|
id = $this.data('id');
|
|
|
|
|
|
if ($this.hasClass('active')) {
|
|
|
|
|
|
// 选中时,再次点击取消选中
|
|
|
$this.removeClass('active');
|
|
|
$sortSub.children(':eq(' + index + ')').addClass('hide');
|
|
|
$sizeWrap.addClass('hide');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$this.siblings('.active').removeClass('active');
|
|
|
$this.addClass('active');
|
|
|
|
|
|
$sortSub.children(':not(.hide)').addClass('hide');
|
|
|
$sortSub.children(':eq(' + index + ')').removeClass('hide');
|
|
|
|
|
|
if (sizeCache[id]) {
|
|
|
$sizeWrap.find('.attr-content').html(sizeCache[id]);
|
|
|
$sizeWrap.removeClass('hide');
|
|
|
} else {
|
|
|
$.ajax({
|
|
|
url: '/product/search/sortSize',
|
|
|
data: {
|
|
|
msort: id
|
|
|
}
|
|
|
}).then(function(res) {
|
|
|
if ($.type(res) === 'array' && res.length) {
|
|
|
sizeCache[id] = sizeTmpl({
|
|
|
size: res
|
|
|
});
|
|
|
$sizeWrap.find('.attr-content').html(sizeCache[id]);
|
|
|
$sizeWrap.removeClass('hide');
|
|
|
} else {
|
|
|
$sizeWrap.addClass('hide');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌】
|
|
|
if ($brandMore.length > 0) {
|
|
|
$brandMoreTxt = $brandMore.children('em');
|
|
|
$brandMoreIcon = $brandMore.children('.iconfont');
|
|
|
}
|
|
|
|
|
|
//【品牌】多选
|
|
|
$brandMulti.click(function() {
|
|
|
if ($brandPanel.css('display') === 'none') {
|
|
|
|
|
|
//显示品牌面板
|
|
|
$brandMore.trigger('click');
|
|
|
}
|
|
|
|
|
|
$brandPanel.addClass('multi'); //显示出checkbox
|
|
|
$(this).addClass('hide');
|
|
|
});
|
|
|
|
|
|
//【品牌】更多
|
|
|
$brandMore.click(function() {
|
|
|
var $this = $(this);
|
|
|
|
|
|
if ($this.hasClass('more')) {
|
|
|
brandHideMore();
|
|
|
|
|
|
$brandMoreTxt.text('更多');
|
|
|
$brandMoreIcon.html(moreUnicode.down);
|
|
|
} else {
|
|
|
brandShowMore();
|
|
|
|
|
|
$brandMoreTxt.text('收起');
|
|
|
$brandMoreIcon.html(moreUnicode.up);
|
|
|
}
|
|
|
|
|
|
$(this).toggleClass('more');
|
|
|
});
|
|
|
|
|
|
//【品牌】索引
|
|
|
$('.brands-index').on('mouseenter', 'span', function() {
|
|
|
var $this = $(this),
|
|
|
index = $this.data('index');
|
|
|
|
|
|
if ($this.hasClass('hover')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$this.siblings('span.hover').removeClass('hover');
|
|
|
$this.addClass('hover');
|
|
|
|
|
|
if ($this.index() === 0) {
|
|
|
|
|
|
//全部
|
|
|
$brandAttrs.removeClass('hide');
|
|
|
} else {
|
|
|
$brandAttrs.addClass('hide').filter('[data-index=' + index + ']').removeClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌】搜索
|
|
|
$('#brand-search-input').keyup(function() {
|
|
|
var val = $(this).val().toLowerCase();
|
|
|
|
|
|
if (val === '') {
|
|
|
$brandAttrs.removeClass('hide');
|
|
|
} else {
|
|
|
$brandAttrs.addClass('hide').filter('[data-key*="' + val + '"]').removeClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌】多选确定
|
|
|
$('#brand-multi-ok').click(function() {
|
|
|
var val = '';
|
|
|
|
|
|
if ($(this).hasClass('dis')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$brandPanel.find('.checked').each(function() {
|
|
|
var id = $(this).data('id');
|
|
|
|
|
|
val += (val === '') ? id : (',' + id);
|
|
|
});
|
|
|
|
|
|
uriLoc('brand', val);
|
|
|
});
|
|
|
|
|
|
//【品牌/高级选项】多选取消
|
|
|
$('.multi-select-cancel').click(function() {
|
|
|
var $panel = $(this).closest('.multi');
|
|
|
|
|
|
if ($panel.hasClass('brand-panel')) {
|
|
|
|
|
|
$brandMulti.removeClass('hide'); //显示多选按钮
|
|
|
$brandMore.trigger('click');
|
|
|
}
|
|
|
|
|
|
$panel.removeClass('multi');
|
|
|
clearChecked($panel.find('.checkbox.checked')); //清除选中状态
|
|
|
});
|
|
|
|
|
|
//【品牌/高级选项】checkbox
|
|
|
$('.check-container').on('click', '.attr', function() {
|
|
|
var $this = $(this),
|
|
|
$check = $this.find('.checkbox'),
|
|
|
$btnOk = $this.closest('.brand-panel, .senior-sub').find('.multi-select-ok');
|
|
|
|
|
|
$check.toggleClass('checked');
|
|
|
|
|
|
if ($check.hasClass('checked')) {
|
|
|
$check.html(checkUnicode.checked);
|
|
|
} else {
|
|
|
$check.html(checkUnicode.unchecked);
|
|
|
}
|
|
|
|
|
|
//更新按钮状态
|
|
|
if ($check.hasClass('checked') ||
|
|
|
$this.siblings('.attr').find('.checked').length > 0) {
|
|
|
$btnOk.removeClass('dis');
|
|
|
} else {
|
|
|
$btnOk.addClass('dis');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【品牌/高级选项】当多选时阻止链接默认跳转
|
|
|
$('.brand, .senior').on('click', '.attr > a', function(e) {
|
|
|
if ($(this).closest('.multi').length > 0) {
|
|
|
e.preventDefault();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【价格】用户定义价格处理
|
|
|
if ($udPrice.length > 0) {
|
|
|
$limit = $udPrice.find('.limit');
|
|
|
$min = $limit.filter('.min');
|
|
|
$max = $limit.filter('.max');
|
|
|
$btn = $udPrice.find('.price-sure');
|
|
|
|
|
|
//【价格】输入
|
|
|
$limit.keyup(function() {
|
|
|
var min = $.trim($min.val()),
|
|
|
max = $.trim($max.val()),
|
|
|
isMinInt = interReg.test(min),
|
|
|
isMaxInt = interReg.test(max);
|
|
|
|
|
|
if (isMaxInt && (min === '' || isMinInt) ||
|
|
|
isMinInt && (max === '' || isMaxInt)
|
|
|
) {
|
|
|
$btn.removeClass('hide');
|
|
|
} else {
|
|
|
$btn.addClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//【价格】多项查询
|
|
|
$btn.click(function() {
|
|
|
var min = $.trim($min.val()),
|
|
|
max = $.trim($max.val()),
|
|
|
tmp;
|
|
|
|
|
|
//对于min大于max的情况,交换位置
|
|
|
if (min !== '' && max !== '' && +min > +max) {
|
|
|
tmp = max;
|
|
|
max = min;
|
|
|
min = tmp;
|
|
|
}
|
|
|
|
|
|
uriLoc('price', min + ',' + max);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//【高级选项】鼠标移入显示子项
|
|
|
$seniorAttrWrap.on('mouseenter', '.attr', function() {
|
|
|
var $this = $(this);
|
|
|
var index = $this.index();
|
|
|
|
|
|
if ($this.hasClass('no-sub')) {
|
|
|
return;
|
|
|
}
|
|
|
$this.addClass('hover').siblings().removeClass('hover');
|
|
|
|
|
|
$seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide').siblings().addClass('hide');
|
|
|
}).on('mouseleave', '.attr', function() {
|
|
|
var $this = $(this),
|
|
|
index = $this.index();
|
|
|
|
|
|
if ($this.hasClass('no-sub')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
hoveredIndex = index;
|
|
|
|
|
|
seniorHoverTime = setTimeout(function() {
|
|
|
hideSeniorPanel();
|
|
|
}, 100);
|
|
|
});
|
|
|
|
|
|
//【高级选项】多选
|
|
|
$('.senior-sub').on('click', '.multi-select', function() {
|
|
|
$(this).closest('.senior-sub').addClass('multi');
|
|
|
}).on('click', '.multi-select-ok', function() {
|
|
|
var $btn = $(this),
|
|
|
$sub = $btn.closest('.senior-sub'),
|
|
|
val = '';
|
|
|
|
|
|
if ($btn.hasClass('dis')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$sub.find('.checked').each(function() {
|
|
|
var id = $(this).data('id');
|
|
|
|
|
|
val += (val === '') ? id : (',' + id);
|
|
|
});
|
|
|
|
|
|
uriLoc($sub.data('attr'), val);
|
|
|
}).on('mouseenter', function() {
|
|
|
clearTimeout(seniorHoverTime);
|
|
|
}).on('mouseleave', function() {
|
|
|
hideSeniorPanel();
|
|
|
});
|
|
|
|
|
|
});
|
|
|
define("js/product/sort-pager", ["jquery"], function(require, exports, module){
|
...
|
...
|
@@ -2214,6 +2225,65 @@ $countPerPage.click(function() { |
|
|
}
|
|
|
});
|
|
|
});
|
|
|
define("js/product/latest-walk", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){
|
|
|
/**
|
|
|
* 最近浏览取接口渲染模板
|
|
|
* @author: xuqi<qi.xu@yoho.cn>
|
|
|
8 @date: 2016/1/20
|
|
|
*/
|
|
|
|
|
|
var $ = require("jquery");
|
|
|
var Handlebars = require("handlebars");
|
|
|
var lazyLoad = require("lazyload");
|
|
|
|
|
|
var $latestWalkCount = $('#latest-walk-count');
|
|
|
|
|
|
(function() {
|
|
|
var tpl;
|
|
|
|
|
|
if ($latestWalkCount.lenght < 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
tpl = Handlebars.compile($('#latest-walk-tpl').html());
|
|
|
|
|
|
$.ajax({
|
|
|
url: 'http://itemapi.yohobuy.com/item/item/recentreview',
|
|
|
dataType: 'jsonp',
|
|
|
data: {
|
|
|
limit: $latestWalkCount.val()
|
|
|
},
|
|
|
success: function(data) {
|
|
|
var latestWalk = [],
|
|
|
res, i, cur;
|
|
|
|
|
|
if (data.code === 200) {
|
|
|
res = data.data;
|
|
|
|
|
|
for (i = 0; i < res.length; i++) {
|
|
|
cur = res[i];
|
|
|
|
|
|
latestWalk.push({
|
|
|
href: cur.url,
|
|
|
img: cur.pic_url,
|
|
|
name: cur.product_name,
|
|
|
salePrice: cur.price,
|
|
|
marketPrice: cur.market_price
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (latestWalk.length > 0) {
|
|
|
$('#latest-walk-goods').html(tpl({
|
|
|
latestWalk: latestWalk
|
|
|
}));
|
|
|
|
|
|
lazyLoad($('#latest-walk-goods .lazy'));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}());
|
|
|
});
|
|
|
define("js/product/product", ["jquery","lazyload"], function(require, exports, module){
|
|
|
/**
|
|
|
*Description: 商品列表页
|
...
|
...
|
@@ -5778,7 +5848,7 @@ $sc.click(function() { |
|
|
$.post('/passport/back/sendbackmobile', {
|
|
|
mobile: $('#mobile').val(),
|
|
|
area: $('#area').val(),
|
|
|
verifyCode: $('#captchaPic').val(),
|
|
|
verifyCode: $('#captchaPic').val()
|
|
|
}, function(jsonData) {
|
|
|
if (jsonData.code === 200) {
|
|
|
$errTip.hide();
|
...
|
...
|
@@ -5832,17 +5902,34 @@ itime = setInterval(function() { |
|
|
|
|
|
|
|
|
$('#captcha').keyup(function() {
|
|
|
var v = $.trim($(this).val());
|
|
|
var v = $.trim($(this).val()),
|
|
|
that = this;
|
|
|
|
|
|
if (v !== '') {
|
|
|
|
|
|
//添加验证码正确验证
|
|
|
//$next.removeClass('disable').prop('disabled', false);
|
|
|
$next.removeClass('disable').removeAttr('disabled');
|
|
|
} else {
|
|
|
if (v.length === 4) {
|
|
|
$.ajax({
|
|
|
type: 'POST',
|
|
|
url: '/passport/back/backmobile',
|
|
|
dataType: 'json',
|
|
|
data: {
|
|
|
code: $('#captcha').val(),
|
|
|
verifyCode: $("#captchaPic").val(),
|
|
|
area: $('#area').val(),
|
|
|
mobile: $('#mobile').val()
|
|
|
},
|
|
|
success: function(res) {
|
|
|
if (res.code === 200) {
|
|
|
|
|
|
//$next.addClass('disable').prop('disabled', true);
|
|
|
$next.addClass('disable').attr('disabled', true);
|
|
|
//添加验证码正确验证
|
|
|
$next.removeClass('disable').removeAttr('disabled');
|
|
|
$errTip.addClass('hide');
|
|
|
$(that).removeClass('error');
|
|
|
} else {
|
|
|
$next.addClass('disable').attr('disabled', true);
|
|
|
$errTip.removeClass('hide').find('em').text('验证码输入错误');
|
|
|
$(that).addClass('error');
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}).blur(function() {
|
|
|
var v = $.trim($(this).val());
|
...
|
...
|
@@ -5851,10 +5938,7 @@ $('#captcha').keyup(function() { |
|
|
|
|
|
//添加验证码正确验证
|
|
|
$(this).addClass('error');
|
|
|
$errTip.removeClass('hide');
|
|
|
} else {
|
|
|
$(this).removeClass('error');
|
|
|
$errTip.addClass('hide');
|
|
|
$errTip.removeClass('hide').text('请输入验证码');
|
|
|
}
|
|
|
}).focus(function() {
|
|
|
$(this).removeClass('error');
|
...
|
...
|
|