欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

排序箭头,升序,降序简单实现

发布时间:2025/3/19 编程问答 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 排序箭头,升序,降序简单实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

css不好实现的效果,通过背景图片来弥补。

css

<style>.sortedASC{ background: url({sh::PUB}img/icon-table-sort-asc.png) no-repeat 80% 5px #eee;}.sorted{ background: url({sh::PUB}img/icon-table-sort.png) no-repeat 80% 9px #eee ;}.sortedDESC{ background: url({sh::PUB}img/icon-table-sort-desc.png) no-repeat 80% 11px #eee;}</style>

html

<tr role="row"><th role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Domain: activate to sort column ascending">默认</th><th class="sort sortedASC" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Price: activate to sort column ascending">销量</th><th class="sort sortedDESC" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Price: activate to sort column ascending">新品</th><th class="sort sorted" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Update: activate to sort column ascending"><i class="ace-icon fa fa-clock-o bigger-110 hidden-480"></i> 价格</th></tr>

效果有了,剩下的就是通过js逻辑和程序逻辑来实现排序了。

实现功能

html改造

<th class="sort" data-type="default" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Domain: activate to sort column ascending">默认</th> <th class="sort <if condition='$sale eq 1'>sortedASC<elseif condition='$sale eq -1'/>sortedDESC<else />sorted</if>" data-type="sale" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Price: activate to sort column ascending">销量</th> <th class="sort <if condition='$new eq 1'>sortedASC<elseif condition='$new eq -1'/>sortedDESC<else />sorted</if>" data-type="new" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Price: activate to sort column ascending">新品</th> <th class="sort <if condition='$price eq 1'>sortedASC<elseif condition='$price eq -1'/>sortedDESC<else />sorted</if>" data-type="price" role="columnheader" tabindex="0" aria-controls="sample-table-2" rowspan="1" colspan="1" aria-label="Update: activate to sort column ascending"><i class="ace-icon fa fa-clock-o bigger-110 hidden-480"></i> 价格 </th>

增加date-type,统一的class 'sort'。

js事件

$('.sort').click(function() {var type = $(this).data('type');var category_id = '{sh:$category_id}';var sort;if ($(this).hasClass('sorted')) { // 降序$(this).removeClass('sorted').addClass('sortedDESC');sort = '-1';}else if ($(this).hasClass('sortedASC')) { // 降序$(this).removeClass('sortedASC').addClass('sortedDESC');sort = '-1';}else if ($(this).hasClass('sortedDESC')) { // 升序$(this).removeClass('sortedDESC').addClass('sortedASC');sort = '1';}if (type =='default') {location.href="{sh::U('Store/Home/goodslist',array('category_id'=>'"+category_id+"'))}";} else {location.href="{sh::U('Store/Home/goodslist',array('category_id'=>'"+category_id+"','"+type+"'=>'"+sort+"'))}";}});

后台处理

if ($sale = $this->_request('sale')) {if ($sale == '-1') {$order = '(salecount+fakemembercount) desc';}if ($sale == '1') {$order = '(salecount+fakemembercount) asc';}$this->assign('sale',$sale); }if ($price = $this->_request('price')) {if ($price == '-1') {$order = 'oprice desc';}if ($price == '1') {$order = 'oprice asc';}$this->assign('price',$price); }if ($new = $this->_request('new')) {if ($new == '-1') {$order = 'addtime desc';}if ($new == '1') {$order = 'addtime asc';}$this->assign('new',$new); }

tips:这里是大概的思路,具体需要你们根据实际情况去实现,可以优化成异步加载。




本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5743537.html,如需转载请自行联系原作者

总结

以上是生活随笔为你收集整理的排序箭头,升序,降序简单实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。