求大神帮我看下jq的代码,高分悬赏啊

翻白眼的小妹子 2017-06-30 02:59:00
遇到的问题是:
我想通过点击一级分类,筛选当前分类的文章内容和子菜单(已经实现);
当出现子菜单的时候,无法点击子菜单进行筛选,不知道怎么写了。。


这是模板里面的代码:

<div class="screen2 in" style=" top: 2rem; position: absolute;">
<div class="cate" data-catlevel="{$catlevel}">
<div class="item" data-level="1" style="overflow:hidden">
{loop $allcategory['parent'] $c}
<nav data-id="{$c['id']}" style="float:left;margin:5px">{$c['name']}</nav>
{/loop}
</div>
{if $catlevel>=2}
<div class="item2 item" data-level="2" style="overflow:hidden;"></div>
{/if}
</div>
</div>

浏览器解析后

<div class="screen2 in" style=" top: 2rem; position: absolute;">
<div class="cate" data-catlevel="2">
<div class="item" data-level="1" style="overflow:hidden">
<nav data-id="22" style="float:left;margin:5px">栏目分类</nav>
<nav data-id="23" style="float:left;margin:5px">栏目分类</nav>
<nav data-id="26" style="float:left;margin:5px">栏目分类</nav>
<nav data-id="27" style="float:left;margin:5px">栏目分类</nav>
<nav data-id="24" style="float:left;margin:5px">栏目分类</nav>
<nav data-id="28" style="float:left;margin:5px">栏目分类</nav>
</div>
<div class="item2 item" data-level="2" style="overflow:hidden;"></div>
</div>
</div>

jq代码:

define(['core', 'tpl', 'biz/goods/picker', 'biz/goods/wholesalePicker'], function(core, tpl, picker, wholesalePicker) {
var defaults = {
keywords: '',
isrecommand: '',
ishot: '',
isnew: '',
isdiscount: '',
issendfree: '',
istime: '',
cate: '',
order: '',
by: 'desc',
merchid: 0
};
var modal = {
page: 1,
params: {},
lastcate: false
};
modal.init = function(params) {
modal.params = $.extend(defaults, params || {});
var leng = $.trim($('.container').html());
if (leng == '') {
modal.page = 1;
modal.getList()
}
$('form').submit(function() {
$('.container').empty();
modal.params = defaults;
modal.page = 1;
modal.params.keywords = $('#search').val();
modal.getList();
return false
});
$('#search').bind('input propertychange', function() {
if ($.trim($(this).val()) == '') {
$('.container').empty();
$('.sort .item-price').removeClass('desc').removeClass('asc');
modal.params = defaults;
modal.page = 1;
modal.params.keywords = '';
modal.getList()
}
});
modal.bindCategoryEvents();
$('#listblock').click(function() {
if ($(this).hasClass('icon-app')) {
$(this).removeClass('icon-app').addClass('icon-sort')
} else {
$(this).removeClass('icon-sort').addClass('icon-app')
}
$('.container').toggleClass('block')
});
$('.fui-content').infinite({
onLoading: function() {
modal.getList()
}
});
modal.bindEvents()
};

//这里是重点::::就是这个地方
modal.bindCategoryEvents = function() {
$('.screen2 .cate .item nav').unbind('click').click(function() {
var catlevel = $(this).closest('.cate').data('catlevel');
var item = $(this).parent();
item.find('nav.on').removeClass('on');
$(this).addClass('on');
var level = item.data('level');
modal.lastcateid = $(this).data('id');
if (level >= catlevel) {
return
}
if (modal.lastcateid) {
modal.params.cate = modal.lastcateid
}
var items = $(".subcategory .item[data-level='" + level + "'] ~ .item");
items.html('');
var next = $(this).closest('.item').next('.item');
var children = window.category['children'][modal.lastcateid];
var HTML = "";
$.each(children, function() {
HTML += "<nav class='nav' data-id='" + this.id + "'>" + this.name + "</nav> ";
});
$('.container').html(''), $('.infinite-loading').show(), $(".content-empty").hide();
modal.page = 1, modal.getList();
next.html(HTML);
modal.bindCategoryEvents()
});
};
modal.showFilter = function() {
$('.fui-mask-m').show().addClass('visible');
$('.screen2').addClass('in');
$('.screen2 .btn').unbind('click').click(function() {
var type = $(this).data('type');
if ($(this).hasClass('btn-danger-o')) {
$(this).removeClass('btn-danger-o').addClass('btn-default-o');
$(this).find('.icon').hide()
} else {
$(this).removeClass('btn-default-o').addClass('btn-danger-o');
$(this).find('.icon').show()
}
});
$('.screen2 .cancel').unbind('click').click(function() {
modal.cancelFilter()
});
$('.screen2 .confirm').unbind('click').click(function() {
$('.screen2 .btn').each(function() {
var type = $(this).data('type');
if ($(this).hasClass('btn-danger-o')) {
modal.params[type] = "1"
} else {
modal.params[type] = ""
}
});
if (modal.lastcateid) {
modal.params.cate = modal.lastcateid
}
modal.closeFilter();
$('.container').html(''), $('.infinite-loading').show(), $(".content-empty").hide();
modal.page = 1, modal.getList()
});
modal.bindCategoryEvents();
$('.fui-mask-m').unbind('click').click(function() {
modal.closeFilter()
})
};
modal.cancelFilter = function() {
$('.screen2 .cate .item nav').removeClass('on');
$('.screen2 .cate .item:first-child ~ .item').html('');
defaults.cate = '';
modal.params = defaults, modal.getList()
};
modal.bindEvents = function() {
$('.buy').unbind('click').click(function() {
var goodsid = $(this).closest('.fui-goods-item').data('goodsid');
var type = $(this).closest('.fui-goods-item').data('type');
if (type == 20) {
location.href = core.getUrl('goods/detail', {
id: goodsid
})
} else {
if ($(this).data('type') == 4) {
wholesalePicker.open({
goodsid: goodsid
})
} else {
picker.open({
goodsid: goodsid,
total: 1,
optionid: 0
})
}
}
})
};
modal.getList = function() {
modal.params.page = modal.page;
core.json('goods/get_list', modal.params, function(ret) {
$('.infinite-loading').hide();
var result = ret.result;
if (result.total <= 0) {
$('.content-empty').show();
$('.fui-content').infinite('stop')
} else {
$('.content-empty').hide();
$('.fui-content').infinite('init');
if (result.list.length <= 0 || result.list.length < result.pagesize) {
modal.stopLoading = true;
$('.fui-content').infinite('stop')
}
}
modal.page++;
core.tpl('.container', 'tpl_goods_list', result, modal.page > 1);
modal.bindEvents()
})
};
return modal
});
...全文
103 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧