之前与PHP的合作模式之一是前端这边负责写好静态页面交货。

那现在新进的公司,PHP说筛选由前端来实现。

嗯,好吧。实现就实现,多锻炼下咯。

<div class="fliter">
<div class="comtent_class">
<!--{loop $category $k $p}-->
<ul data-index="{$k}">
<span caty-id="{$p['id']}">{$p['cate_name']}</span>
<!--{if $k==0}-->
<li data-id='0' {if $zid == 0}class="active"{/if}><a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=0">全部</a></li>
<!--{/if}-->
<!--{if $k==1}-->
<li data-id='0' {if $yid == 0}class="active"{/if}><a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=0">全部</a></li>
<!--{/if}-->
<!--{if $k==2}-->
<li data-id='0' {if $fid == 0}class="active"{/if}><a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=0">全部</a></li>
<!--{/if}-->
<!--{if $k==3}-->
<li data-id='0' {if $mid == 0}class="active"{/if}><a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=0">全部</a></li>
<!--{/if}-->
<!--{if $k==4}-->
<li data-id='0' {if $bid == 0}class="active"{/if}><a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=0">全部</a></li>
<!--{/if}--> <!--{loop $p['tag'] $c}--> <!--{if $k==0}-->
<li data-id="{$c['id']}" {if $zid == $c['id']}class="active"{/if}>
<a href="vrcase.html?zid={$c['id']}&yid=0&fid=0&mid=0&bid=0&sid=0">{$c['tag_name']}</a>
</li>
<!--{elseif $k==1}-->
<li data-id="{$c['id']}" {if $yid == $c['id']}class="active"{/if}>
<a href="vrcase.html?zid=0&yid={$c['id']}&fid=0&mid=0&bid=0&sid=0">{$c['tag_name']}</a>
</li>
<!--{elseif $k==2}-->
<li data-id="{$c['id']}" {if $fid == $c['id']}class="active"{/if}>
<a href="vrcase.html?zid=0&yid=0&fid={$c['id']}&mid=0&bid=0&sid=0">{$c['tag_name']}</a>
</li>
<!--{elseif $k==3}-->
<li data-id="{$c['id']}" {if $mid == $c['id']}class="active"{/if}>
<a href="vrcase.html?zid=0&yid=0&fid=0&mid={$c['id']}&bid=0&sid=0">{$c['tag_name']}</a>
</li>
<!--{elseif $k==4}-->
<li data-id="{$c['id']}" {if $bid == $c['id']}class="active"{/if}>
<a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid={$c['id']}&sid=0">{$c['tag_name']}</a>
</li>
<!--{/if}-->
<!--{/loop}-->
</ul>
<!--{/loop}--> </div>
<div class="comtent_demo">
<ul data-index="">
<li data-id="0" {if $sid == 0}class="active"{/if}>
<a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=0">最新</a>
</li>
<li data-id="1" {if $sid == 1}class="active"{/if}>
<a href="vrcase.html?zid=0&yid=0&fid=0&mid=0&bid=0&sid=1">最热</a>
</li>
</ul>
</div>
</div> <div class="comtent_tit">
<ul class="imglist">
<!--{loop $row $p}-->
<li class="mlSty">
<a href="case_list.html?title={$p['case_title']}&no={$p['case_content']}" target="view_frame">
<div class="img">
<img src="{$p['case_cover']}" alt=""></div>
</div>
</a>
</li>
<!--{/loop}-->
</ul>
</div> 筛选区在 div.filter 中,分类用ul格开
筛选效果:鼠标移至选项时该href链接对应更正,鼠标点击时跳转至各筛选条件对应的链接。
筛选原理:鼠标操作存置当前data-id置对应类别ulIndex下标的urlArr中
注意点1:鼠标移至时该data-id存置链接数组中组成当前链接,鼠标移出时则要清掉链接数组中对应的值
$(function(){
/*筛选链接--start*/
function hrefLink(ele,type){
var urlArr=[],wHref=window.location.href.match(/\d+/g);
for(var i=0;i< $('.fliter ul').length;i++){if(wHref==null){urlArr[i]=0;}else{urlArr[i]= wHref[i];}}
$(".fliter .comtent_demo ul").data('index',$('.fliter .comtent_class ul').length);
var catyIndex=ele.parents('ul').data('index');
var catyId=ele.parents('li').siblings('span').attr('caty-id');
var dataId=ele.parents('li').data('id');
var href=ele.attr('href');
if(type=="mouseenter"){
urlArr[catyIndex]=dataId;
}else{
urlArr[catyIndex]=0;
}
var hrefparm="?zid="+urlArr[0]+"&yid="+urlArr[1]+"&fid="+urlArr[2]+"&mid="+urlArr[3]+"&bid="+urlArr[4]+"&sid="+urlArr[5];
ele.attr('href',window.location.pathname.concat(hrefparm));
return urlArr;
}
$('.fliter li a').on('mouseenter', function(){hrefLink($(this),"mouseenter");});
$('.fliter li a').on('mouseleave', function(){hrefLink($(this),"mouseleave");}); $('.filter li a').on('click',function(){$(this).parents('li').addClass('active').siblings().removeClass('active');})
/*筛选链接--end*/
})

  

【html】前端实现筛选条件跳转的更多相关文章

  1. JS前端数据多条件筛选(商品搜索)

    有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置. 仿照京东的筛 ...

  2. sql之表连接 筛选条件放在 连接外和放在连接里的区别

    使用一个简单的例子,说明他们之间的区别 使用的表:[Sales.Orders]订单表和[Sales.Customers]客户表,和上一篇博客的表相同 业务要求:查询出 : 所有的用户 在 2012-1 ...

  3. nginx根据条件跳转+跳转规则

    好的参考博文: nginx rewrite规则 自己写的时候参考这两个 Nginx 伪静态Rewrite,重定向Location配置总结(转) nginx rewrite规则语法 一.输入子目录跳转 ...

  4. vue的data的数据进行指定赋值,用于筛选条件的清空,或者管理系统添加成功后给部分数据赋值为空

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. jqgrid 表格中筛选条件的多选下拉,树形下拉 ;文本框清除插件;高级查询多条件动态筛选插件[自主开发]

    /** * @@desc 文本框清除按钮,如果isAutoWrap为false当前文本框父级必须是relative定位,boostrap参考input-group * @@author Bear.Ti ...

  6. 汇编 sub减法指令 比较指令CMP JZ条件跳转指令

    二.SUB指令 减法指令SUB (SUBtract) 格式: SUB A,B //A=A-B; 功能: 两个操作数的相减,即从A中减去B,其结果放在A中. 二.CMP 和JZ 指令 比较指令CMP 格 ...

  7. FastAdmin selectPage 前端传递查询条件

    ★夕狱-东莞 2018/2/2 16:19:33 selectpage 怎么在前端传递查询条件,看了下源码,好像有个custom,怎么用来的,比如我要下拉的时候,只显示id=1的数据 Karson-深 ...

  8. django orm 以列表作为筛选条件进行查询

    在Django的orm中进行查询操作时,可以通过传入列表,列表内的元素为索引值,作为一个筛选条件来进行行查询 from .models import UserInfo user_obj = UserI ...

  9. 在SharePoint列表中使用动态筛选条件[今日][Today]

    如果在SharePoint使用了日历控件或者其他列表中有时间字段,用户经常希望能够动态使用条件字段进行筛选,例如希望筛选出开始日期是今天的事件.未来三日的事件. SharePoint的列表筛选条件支持 ...

随机推荐

  1. ActiveReports 报表控件V12新特性 -- 可定制的安装设置

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  2. ISDBT中CC的处理疑问

    一个针对日本的数字电视应用(ISDBT)里字幕处理有一些问题,规范文档庞大又复杂,读起来还觉得语焉不详.接手遗留项目尝试处理字幕显示的问题,边读spec边看代码,先猜测.试图理解既有逻辑,再分析问题产 ...

  3. RecyclerView源码解析 - 分割线

    猜想:   既然考虑了分割线,那么子View在测量时候肯定要去考虑分割线留出的位置    直接measureChild()方法 猜想: 分割线会调用绘制的方法 onDraw()

  4. 带你从零学ReactNative开发跨平台App开发(一)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  5. 有道云笔记 markdown 本地资源图片 粘贴到word居然粘贴不过去 资源名不能有汉子

    刚开始使用有道云笔记,整理一个说明文档的时候,出现了问题 我将一个图片保存到桌面,文件名是中文汉字的图片.在云笔记里能正常显示,但是粘贴到word里面,也没有图片.我尝试了半天.最后居然发现只要把文件 ...

  6. webstorm使用过程中的一些问题与技巧

    这一篇会随着使用逐渐更新: 1. 问题:string templates are not supported by current javascript version 解决 : setting &g ...

  7. 报错:java.net.bindexception: address already in use: jvm_bind:8080

    原因:8080端口被占用 这说明80端口(该端口是Tomcat的监听端口)已经被其他程序占用,先用命令提示符 " netstat -ano " 命令显示端口状态,再在结果中找到端口 ...

  8. HTTP的cookie

    HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知 ...

  9. QT的setwindowflags的属性总结

    :setWindowFlags(Qt::CustomizeWindowHint);//设置窗口标题栏自定义 setWindowFlags(Qt::WindowMinimizeButtonHint);/ ...

  10. python使用mechanize模拟登陆新浪邮箱

    mechanize相关知识准备: mechanize.Browser()<br># 设置是否处理HTML http-equiv标头 set_handle_equiv(True)<br ...