点击表头对该列进行排序
需求:点击表头内容实现根据该列进行排序
如图为表格中得某一列
实现方法1:只需引入js文件,哪个需要排序加个类名即可。
1.引入sort.js
https://segmentfault.com/a/11…
2.定义样式
#MyHeadTab thead tr{ cursor: pointer; } .MyHeadTab{ cursor:pointer; } #MyHeadTab .arrow,.MyHeadTab .arrow{ font-family: webdings; color: #ccc; padding: 0; font-size: 10px; height: 11px; width: 10px; overflow: hidden; margin-bottom: 5; margin-top: -3; padding: 0; padding-top: 0; padding-bottom: 2; }
3.在需要排序得列加类名
实现方法2:自定义排序方法
//propertyName为该列得属性名,order为正序或倒序 compare(propertyName,order) { return function (object1, object2) { var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(order){ if (value2 < value1) { return -1; } else if (value2 > value1) { return 1; } else { return 0; } }if(!order){ if (value2 > value1) { return -1; } else if (value2 < value1) { return 1; } else { return 0; } } } }
使用时:
js方法:
compareFunc:function(propertyName,order){ let me=this; me.list.sort(me.compare(propertyName,order)); if(propertyName=="type"){ //因一个表格可能有多个列需要排列,设置一个标志位判断当前位升序还是倒序 me.ordertype=!me.ordertype; } }
html中:
<td class='MyHeadTab' @click='compareFunc("type",ordertype)'>资产类型 <span class='arrow' v-if='ordertype' @click='compareFunc("type",ordertype)'>5</span> <span class='arrow' v-if='!ordertype' @click='compareFunc(""type"",ordertype)'>6</span> </td>
样式同方式1。
效果图:
将不断完善更新,期待您的批评指正!
原文地址:https://segmentfault.com/a/1190000021408357
相关推荐
-
LsLoader 移动WEB工程化缓存方案 javascript/jquery
2019-3-7
-
js 禁止/允许页面滚动 javascript/jquery
2019-10-3
-
封装一个自己的轮播图组件(基于 Vue) javascript/jquery
2020-5-26
-
Base64编码 javascript/jquery
2019-9-11
-
webpack 面试题收集 javascript/jquery
2020-6-11
-
我为什么推荐Prettier来统一代码风格 javascript/jquery
2019-3-24
-
微信支付跨平台软件架构 javascript/jquery
2020-6-12
-
防抖与节流常见的几种实现方式 javascript/jquery
2020-5-26
-
原生JS实现AJAX、JSONP及DOM加载完成事件,并提供对应方法 javascript/jquery
2017-12-12
-
兴趣驱动职业,七年之后的我… javascript/jquery
2019-9-7