更新时间:2017-5-19 18:06:03
更新说明:
1.修复分类属性带有正则保留关键词bug
2.增加了js的压缩版本与调试版本
项目要后端来实现分类筛选功能,前端要去对应的参数传递到url参数里,网上找来的代码是有些是没有全部这个选项的,有些是ajax来请求数据的,后来还是花了时间写了这个插件
DOM结构:
<a href="#" rel="" name="mode" class="all on">全部</a> <a href="#" rel="股权融资" name="mode" class="sx_child">股权融资</a> <a href="#" rel="债权融资" name="mode" class="sx_child">债权融资</a>
说明:
name: 对应url里的参数名称rel: 对应url里参数的键值class: 对应子项的样式名称
例: http://localhost/filter.html?mode=股权融资
Javascript:
$(function(){ new SelectTag({ child: ".sx_child", //所有筛选范围内的子类 over: 'on', //选中状态样式名称 all: ".all" //全部class }); })
有bug要是rel参数有0、1、2、3、4这些数字点下去会改变端口号
如果是数字的情况下需要改_select方法下的内容:
_select: function() { var t = this, e = window.location.href; $(t.child).each(function() { var i = $(this).attr("rel"); var n = t._getParams($(this).attr("name")); if (n == i) { $(this).addClass(t.over); var r = $(this).attr("name"); $("[name=" + r + "]").eq(0).removeClass(t.over) } else $(this).removeClass(t.over) }) },
在页面增加获取参数的方法
_getParams: function(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); }
您好,我觉得稍微有点
bug_changeURLPar: function(destiny, par, par_value) { var self = this; var pattern = par + '=([^&]*)'; var replaceText = par + '=' + par_value; var ifAttr = encodeURI(self._getQueryString(par)); //var ifAttr = self._getQueryString(par); if (destiny.match(pattern)) { alert(destiny); destiny = destiny.replace(ifAttr, par_value); return (destiny); } else { if (destiny.match('[\?]')) { return destiny + '&' + replaceText; } else { return destiny + '?' + replaceText; } } return destiny + '\n' + par + '\n' + par_value;
那个正则好像有点问题
回复你们q币哪来的,我下载不了,有的可以发我一份吗
gb2312编码不好使 因为URL传值那不是中文 是编码
utf-8文件可用